53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/zsh
 | 
						|
#####################################################################
 | 
						|
 | 
						|
USAGE__options='
 | 
						|
	-e, --exit-code         desired exit code of the function (default "0")
 | 
						|
	-f, --output-function   one of the zsh/utils output functions (default "SUCCESS")
 | 
						|
	-m, --message           a message to display (default "Hello, World!")
 | 
						|
'
 | 
						|
 | 
						|
USAGE__description='
 | 
						|
	a simple hello-world-style script which allows specific scwrypts
 | 
						|
	conditions to be quickly emulated
 | 
						|
'
 | 
						|
 | 
						|
#####################################################################
 | 
						|
 | 
						|
MAIN() {
 | 
						|
	local OUTPUT_FUNCTION=SUCCESS
 | 
						|
	local EXIT_CODE=0
 | 
						|
	local MESSAGE='Hello, world!'
 | 
						|
 | 
						|
	ARGUMENT_REQUIRED() { ERROR "'$1' requires an argument"; }
 | 
						|
 | 
						|
	while [[ $# -gt 0 ]]
 | 
						|
	do
 | 
						|
		case $1 in
 | 
						|
			-e | --exit-code )
 | 
						|
				EXIT_CODE="$2"
 | 
						|
				[ $2 ] && shift 1 || ARGUMENT_REQUIRED
 | 
						|
				;;
 | 
						|
			-f | --output-function )
 | 
						|
				OUTPUT_FUNCTION="$2"
 | 
						|
				[ $2 ] && shift 1 || ARGUMENT_REQUIRED
 | 
						|
				;;
 | 
						|
			-m | --message )
 | 
						|
				MESSAGE="$2"
 | 
						|
				[ $2 ] && shift 1 || ARGUMENT_REQUIRED
 | 
						|
				;;
 | 
						|
			* ) ERROR "unknown argument '$1'" ;;
 | 
						|
		esac
 | 
						|
		shift 1
 | 
						|
	done
 | 
						|
 | 
						|
	CHECK_ERRORS
 | 
						|
 | 
						|
	##########################################
 | 
						|
 | 
						|
	[[ $OUTPUT_FUNCTION =~ ^FAIL$ ]] && FAIL $EXIT_CODE "$MESSAGE"
 | 
						|
 | 
						|
	$OUTPUT_FUNCTION "$MESSAGE"
 | 
						|
	return $EXIT_CODE
 | 
						|
}
 |