diff options
Diffstat (limited to 'scripts/shutdown.in')
| -rw-r--r-- | scripts/shutdown.in | 26 | 
1 files changed, 15 insertions, 11 deletions
diff --git a/scripts/shutdown.in b/scripts/shutdown.in index 4a3d9fd1..69a4a12a 100644 --- a/scripts/shutdown.in +++ b/scripts/shutdown.in @@ -1,17 +1,21 @@  #!@SHELL@ -args= -for x; do -	case "$x" in -		-h) args=" ${args} --halt" ;; -		*) args=" ${args} ${x} " ;; +poweroff_arg= +while getopts :HhPr opt; do +	case "$opt" in +		h|P) poweroff_arg=--poweroff ;; +		H) poweroff_arg=--halt ;; +		r) poweroff_arg=--reboot ;; +		\?) printf "${0##*/}: invalid option ${optarg}\n" >&2 +		exit 1 +		;;  	esac  done +shift $((OPTIND-1)) -case "$args" in -	*-h|--halt*) ;; -	*-s|--single*) ;; -	*) args=" --single ${args}" ;; -esac +if [ -z "${poweroff_arg}" ]; then +	poweroff_arg=--single +fi -exec @SBINDIR@/openrc-shutdown "$args" +echo @SBINDIR@/openrc-shutdown ${poweroff_arg} ${@} +exec @SBINDIR@/openrc-shutdown ${poweroff_arg} ${@}  | 
