mirror of
				https://github.com/limosek/zaf.git
				synced 2025-10-31 17:47:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			167 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| ZAF_CFG_FILE="/etc/zaf.conf"
 | |
| if [ -f $ZAF_CFG_FILE ]; then
 | |
| 	. $ZAF_CFG_FILE
 | |
| else
 | |
| 	echo "Missing config file $ZAF_CFG_FILE! Exiting."
 | |
| 	exit 2
 | |
| fi
 | |
| 
 | |
| [ -z "$ZAF_TMP_BASE" ] && ZAF_TMP_BASE=/tmp/zaf
 | |
| ZAF_TMP_DIR="${ZAF_TMP_BASE}-${USER}"
 | |
| trap "rm -rif ${ZAF_TMP_DIR}" EXIT
 | |
| ! [ -d "${ZAF_TMP_DIR}" ] && mkdir "${ZAF_TMP_DIR}"
 | |
| [ -z "$ZAF_DEBUG" ] && ZAF_DEBUG=1
 | |
| 
 | |
| if [ -f ./lib/zaf.lib.sh ]; then
 | |
| . ./lib/zaf.lib.sh
 | |
| . ./lib/os.lib.sh
 | |
| . ./lib/ctrl.lib.sh
 | |
| [ -f ./lib/zaf.${ZAF_OS}.sh ] && . ./lib/zaf.${ZAF_OS}.sh
 | |
| else 
 | |
| . ${ZAF_LIB_DIR}/zaf.lib.sh
 | |
| . ${ZAF_LIB_DIR}/os.lib.sh
 | |
| . ${ZAF_LIB_DIR}/ctrl.lib.sh
 | |
| [ -f ${ZAF_LIB_DIR}/zaf.${ZAF_OS}.sh ] && . ${ZAF_LIB_DIR}/zaf.${ZAF_OS}.sh
 | |
| fi
 | |
| 
 | |
| case $1 in
 | |
| 
 | |
| check-agent-config)
 | |
| 	zaf_check_agent_config
 | |
| 	;;
 | |
| 
 | |
| update)
 | |
| 	zaf_update_repo
 | |
| 	;;
 | |
| 
 | |
| show)
 | |
| 	if [ -z "$2" ]; then
 | |
| 		zaf_list_plugins | while read plugin; do
 | |
| 			zaf_plugin_info $ZAF_PLUGINS_DIR/$plugin/control.zaf
 | |
| 		done
 | |
| 	else		
 | |
| 		if zaf_list_plugins | grep -q "^$2"; then
 | |
| 			zaf_plugin_info $ZAF_PLUGINS_DIR/$2/control.zaf
 | |
| 		else
 | |
| 			if echo $2 |grep -q ^http; then
 | |
| 				zaf_prepare_plugin "$2" "$ZAF_TMP_DIR/plugin"
 | |
| 				zaf_plugin_info "$ZAF_TMP_DIR/plugin/control.zaf"
 | |
| 			else
 | |
| 				zaf_err "Plugin $2 not installed."
 | |
| 			fi
 | |
| 		fi
 | |
| 	fi
 | |
| 	;;
 | |
| 
 | |
| plugins)
 | |
| 	zaf_list_plugins
 | |
| 	;;
 | |
| 
 | |
| items)
 | |
| 	if [ -z "$2" ]; then
 | |
| 		zaf_list_items
 | |
| 	else
 | |
| 		zaf_list_plugin_items "$2"
 | |
| 	fi
 | |
| 	;;
 | |
| 
 | |
| test)
 | |
| 	if echo $2|grep -q '\.'; then
 | |
| 		zaf_test_item "$2"
 | |
| 		exit
 | |
| 	fi
 | |
| 	if [ -n "$2" ]; then
 | |
| 		shift
 | |
| 		plugins="$@"
 | |
| 	else
 | |
| 		plugins="$(zaf_list_plugins)"
 | |
| 	fi
 | |
| 	for p in $plugins; do
 | |
| 		for i in $(zaf_list_plugin_items $p); do 
 | |
| 			echo $i: $(zaf_test_item $i)
 | |
| 		done
 | |
| 	done
 | |
| 	;;
 | |
| 
 | |
| install)
 | |
| 	shift;
 | |
| 	[ -z "$1" ] && echo "$0 install plugin [plugin]..."
 | |
| 	for p in $@; do
 | |
| 		if zaf_is_plugin "$p"; then
 | |
| 			zaf_wrn "Plugin $p already installed. Skipping installation."
 | |
| 			continue
 | |
| 		fi
 | |
| 		zaf_install_plugin "$p"
 | |
| 		installed=1
 | |
| 	done
 | |
| 	[ -n "$installed" ] && zaf_is_root && zaf_restart_agent
 | |
| 	;;
 | |
| 
 | |
| reinstall)
 | |
| 	shift;
 | |
| 	[ -z "$1" ] && echo "$0 reinstall plugin [plugin]..."
 | |
| 	for p in $@; do
 | |
| 		if zaf_is_plugin "$p"; then
 | |
| 			zaf_remove_plugin "$(basename $p)"
 | |
| 			reinstalled=1
 | |
| 		fi
 | |
| 		zaf_install_plugin "$p"
 | |
| 		reinstalled=1
 | |
| 	done
 | |
| 	[ -n "$reinstalled" ] && zaf_is_root && zaf_restart_agent
 | |
| 	;;
 | |
| 
 | |
| remove)
 | |
| 	shift;
 | |
| 	[ -z "$1" ] && echo "$0 remove plugin [plugin]..."
 | |
| 	for p in $@; do
 | |
| 		if zaf_is_plugin "$p"; then
 | |
| 			zaf_remove_plugin "$p"
 | |
| 			removed=1
 | |
| 		fi
 | |
| 	done
 | |
| 	[ -n "$removed" ] && zaf_is_root && zaf_restart_agent
 | |
| 	;;
 | |
| 
 | |
| self-upgrade)
 | |
| 	rm -rf /tmp/zaf-installer && mkdir /tmp/zaf-installer
 | |
| 	if zaf_fetch_url $ZAF_URL/install.sh >/tmp/zaf-installer/install.sh; then
 | |
| 		cd /tmp/zaf-installer && chmod +x ./install.sh && exec ./install.sh auto
 | |
| 	else
 | |
| 		echo "Cannot fetch uri $ZAF_URL/install.sh!"; 
 | |
| 	fi
 | |
| 	;;
 | |
| 	
 | |
| self-remove)
 | |
| 	. /etc/zaf.conf
 | |
| 	if [ "$2" = "force" ]; then
 | |
| 	  rm -rf /etc/zaf.conf ${ZAF_PLUGINS_DIR} ${ZAF_REPO_DIR} ${ZAF_LIB_DIR} \
 | |
| 		${ZAF_BIN_DIR}/zaf ${ZAF_AGENT_CONFIGD}/zaf_*
 | |
| 	else
 | |
| 	  echo "This will remove zaf from this computer and erase all configuration."
 | |
| 	  echo "This command will be executed:"
 | |
| 	  echo "rm -rf /etc/zaf.conf ${ZAF_PLUGINS_DIR} ${ZAF_REPO_DIR} ${ZAF_LIB_DIR} \
 | |
| 		${ZAF_BIN_DIR}/zaf ${ZAF_AGENT_CONFIGD}/zaf_*"
 | |
| 	  echo 
 | |
| 	  echo "To continue, please do $0 self-remove force"
 | |
| 	fi
 | |
|       ;;
 | |
| 
 | |
| *)
 | |
| 	echo "$0 Version ${ZAF_VERSION}. Please use some of this commands:"
 | |
| 	echo "$0 update			To update repo" 
 | |
| 	echo "$0 plugins		To list installed plugins"
 | |
| 	echo "$0 show [plugin]		To show installed plugins or plugin info"
 | |
| 	echo "$0 items [plugin]		To list all suported items [for plugin]"
 | |
| 	echo "$0 test [plugin[.item]]	To test all suported items [for plugin]"
 | |
| 	echo "$0 install plugin		To install plugin"
 | |
| 	echo "$0 remove plugin		To remove plugin" 
 | |
| 	echo "$0 self-upgrade		To self-upgrade zaf"
 | |
| 	echo "$0 self-remove		To self-remove zaf and its config"
 | |
| 	;;
 | |
| 
 | |
| esac
 | |
| 
 | 
