commit:     9812ce5b8dc22fe36cc7bf75cf6e62db204ece3d
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Mon Jul 10 23:23:01 2017 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Mon Jul 10 23:36:24 2017 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=9812ce5b

fix halt wrapper so it is sysvinit compatible

This makes the halt wrapper sysvinit compatible. It ignores several
command line switches which are not currently implemented; however,
those can be implemented if we need to do so.

This fixes https://github.com/openrc/openrc/issues/146.

 scripts/halt.in | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/scripts/halt.in b/scripts/halt.in
index 68b13be1..257cc2a7 100644
--- a/scripts/halt.in
+++ b/scripts/halt.in
@@ -1,3 +1,24 @@
 #!@SHELL@
 
-exec @SBINDIR@/openrc-shutdown --halt "$@"
+option_arg=
+poweroff_arg=
+while getopts :nwdfiph opt; do
+       case "$opt" in
+               n) ;;
+               w) poweroff_arg=--write-only ;;
+               d) option_arg=--no-write ;;
+               f) ;;
+               i) ;;
+               p) poweroff_arg=--poweroff ;;
+               [?]) printf "%s\n" "${0##*/}: invalid command line option" >&2
+               exit 1
+               ;;
+       esac
+done
+shift $((OPTIND-1))
+
+if [ -z "${poweroff_arg}" ]; then
+       poweroff_arg=--poweroff
+fi
+
+exec @SBINDIR@/openrc-shutdown ${option_arg} ${poweroff_arg} "$@"

Reply via email to