diff options
Diffstat (limited to 'src/reboot')
-rw-r--r-- | src/reboot/meson.build | 7 | ||||
-rw-r--r-- | src/reboot/reboot.in | 30 |
2 files changed, 37 insertions, 0 deletions
diff --git a/src/reboot/meson.build b/src/reboot/meson.build new file mode 100644 index 00000000..a9a4ca54 --- /dev/null +++ b/src/reboot/meson.build @@ -0,0 +1,7 @@ +if os == 'Linux' and get_option('sysvinit') + configure_file(input : 'reboot.in', + output : '@BASENAME@', + configuration : script_conf_data, + install_dir: sbindir, + install_mode: 'rwxr-xr-x') +endif diff --git a/src/reboot/reboot.in b/src/reboot/reboot.in new file mode 100644 index 00000000..bf50967a --- /dev/null +++ b/src/reboot/reboot.in @@ -0,0 +1,30 @@ +#!/bin/sh + +option_arg= +poweroff_arg= +while getopts :nwdfhik opt; do + case "$opt" in + n) ;; + w) poweroff_arg=--write-only ;; + d) option_arg=--no-write ;; + f) ;; + h) ;; + i) ;; + k) poweroff_arg=--kexec ;; + [?]) printf "%s\n" "${0##*/}: invalid command line option" >&2 + exit 1 + ;; + esac +done +shift $((OPTIND-1)) + +if [ -z "${poweroff_arg}" ]; then + poweroff_arg=--reboot +fi + +script_args="$@" +if [ -z "${script_args}" ]; then + script_args=now +fi + +exec @SBINDIR@/openrc-shutdown ${option_arg} ${poweroff_arg} "${script_args}" |