diff --git a/README.md b/README.md index c5e1b41..247ebde 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -spark-rc -======== +# spark-rc A simple rc script to kickstart your system. + +## depends + +* Enabled sysrq or halt from suckless.org's ubase. diff --git a/rc.in b/rc.in index 12002e9..1e43f89 100644 --- a/rc.in +++ b/rc.in @@ -128,10 +128,21 @@ rc.boot() { } rc.halt() { + if type -P halt; then + function rc.halt_poweroff { halt -p; } + function rc.halt_reboot { halt -r; } + elif [[ -f /proc/sysrq-trigger ]]; then + function rc.halt_poweroff { echo 'o' > /proc/sysrq-trigger; } + function rc.halt_reboot { echo 'b' > /proc/sysrq-trigger; } + else + printf 'Cannot halt, please install halt from suckless.org ubase or enable sysrq.\n' + return 1 + fi + case "$action" in - poweroff|shutdown) echo 'o' > /proc/sysrq-trigger;; halt) :;; - reboot|*) echo 'b' > /proc/sysrq-trigger;; + poweroff|shutdown) rc.halt_poweroff;; + reboot|*) rc.halt_reboot;; esac }