1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunCMD=${0##*/} 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun# busybox doesn't provide shutdown command 6*4882a593Smuzhiyun[ "$CMD" != shutdown ] || CMD=poweroff 7*4882a593Smuzhiyun 8*4882a593Smuzhiyununset ARGS HELP 9*4882a593Smuzhiyunwhile [ -n "$1" ];do 10*4882a593Smuzhiyun case "$1" in 11*4882a593Smuzhiyun # Original args 12*4882a593Smuzhiyun -n|-f|-w) 13*4882a593Smuzhiyun ARGS="$ARGS $1" 14*4882a593Smuzhiyun ;; 15*4882a593Smuzhiyun -d) 16*4882a593Smuzhiyun ARGS="$ARGS $1 $2" 17*4882a593Smuzhiyun shift 18*4882a593Smuzhiyun ;; 19*4882a593Smuzhiyun # Additional args 20*4882a593Smuzhiyun --halt) 21*4882a593Smuzhiyun CMD=halt 22*4882a593Smuzhiyun ;; 23*4882a593Smuzhiyun -p|--poweroff) 24*4882a593Smuzhiyun CMD=poweroff 25*4882a593Smuzhiyun ;; 26*4882a593Smuzhiyun --reboot) 27*4882a593Smuzhiyun CMD=reboot 28*4882a593Smuzhiyun ;; 29*4882a593Smuzhiyun --no-wall) 30*4882a593Smuzhiyun ARGS="$ARGS -f" 31*4882a593Smuzhiyun ;; 32*4882a593Smuzhiyun --help) 33*4882a593Smuzhiyun HELP=1 34*4882a593Smuzhiyun ARGS="$ARGS $1" 35*4882a593Smuzhiyun ;; 36*4882a593Smuzhiyun *) 37*4882a593Smuzhiyun ARGS="$ARGS $1" 38*4882a593Smuzhiyun ;; 39*4882a593Smuzhiyun esac 40*4882a593Smuzhiyun shift 41*4882a593Smuzhiyundone 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunif [ -n "$HELP" ]; then 44*4882a593Smuzhiyun busybox $CMD --help 45*4882a593Smuzhiyunelse 46*4882a593Smuzhiyun busybox $CMD $ARGS && exit 0 47*4882a593Smuzhiyunfi 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun# Print add-on usages 50*4882a593Smuzhiyuncat << EOF 51*4882a593Smuzhiyun --help Show this help 52*4882a593Smuzhiyun --halt Halt the machine 53*4882a593Smuzhiyun -p --poweroff Switch off the machine 54*4882a593Smuzhiyun --reboot Reboot the machine 55*4882a593Smuzhiyun --no-wall Don't send wall message before halt/power-off/reboot 56*4882a593SmuzhiyunEOF 57