diff options
Diffstat (limited to 'src/poweroff')
-rw-r--r-- | src/poweroff/meson.build | 7 | ||||
-rw-r--r-- | src/poweroff/poweroff.in | 28 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/poweroff/meson.build b/src/poweroff/meson.build new file mode 100644 index 00000000..c7da747f --- /dev/null +++ b/src/poweroff/meson.build @@ -0,0 +1,7 @@ +if os == 'Linux' and get_option('sysvinit') + configure_file(input : 'poweroff.in', + output : '@BASENAME@', + configuration : script_conf_data, + install_dir: sbindir, + install_mode: 'rwxr-xr-x') +endif diff --git a/src/poweroff/poweroff.in b/src/poweroff/poweroff.in new file mode 100644 index 00000000..4e944bdc --- /dev/null +++ b/src/poweroff/poweroff.in @@ -0,0 +1,28 @@ +#!/bin/sh + +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) ;; + [?]) 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 + +script_args="$@" +if [ -z "${script_args}" ]; then + script_args=now +fi + +exec @SBINDIR@/openrc-shutdown ${option_arg} ${poweroff_arg} "${script_args}" |