From 38aaba28ee86602e29d8a31f155dfa72f5481e68 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Fri, 20 Nov 2020 14:55:26 -0600 Subject: [PATCH] scripts/shutdown.in: fix sysvinit compatible shutdown X-Gentoo-Bug: https://bugs.gentoo.org/755422 --- scripts/shutdown.in | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) 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} "$@"