diff --git a/scripts/shutdown.in b/scripts/shutdown.in index af3ea2b3..23e5e31d 100644 --- a/scripts/shutdown.in +++ b/scripts/shutdown.in @@ -1,14 +1,31 @@ #!/bin/sh -shutdown_arg= +do_halt=false while getopts :akrhPHfFnct: opt; do case "$opt" in a) ;; k) ;; - r) shutdown_arg=--reboot ;; - h) shutdown_arg=--halt ;; - P) shutdown_arg=--poweroff ;; - H) shutdown_arg=--halt ;; + r) + shutdown_arg=--reboot + ;; + h) + do_halt=true + shutdown_arg=--poweroff + ;; + P) + if ! ${do_halt}; then + printf "%s\n" "The -P flag requires the -h flag" >&2 + exit 1 + fi + shutdown_arg=--poweroff + ;; + H) + if ! ${do_halt}; then + printf "%s\n" "The -H flag requires the -h flag" >&2 + exit 1 + fi + shutdown_arg=--halt + ;; f) ;; F) ;; n) ;; @@ -25,5 +42,5 @@ if [ -z "${shutdown_arg}" ]; then shutdown_arg=--single fi -echo @SBINDIR@/openrc-shutdown ${shutdown_arg} "$@" +printf "%s %s\n" "@SBINDIR@/openrc-shutdown ${shutdown_arg}" "$@" exec @SBINDIR@/openrc-shutdown ${shutdown_arg} "$@"