X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/4052ceaa24c08c9c983a023997e654c55ce6481c..cbc1514dc5832165f9943e4658dbd28b7a2092e5:/package/base-files/files/etc/rc.common

diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common
index 4f1a4a3a0..2b7bf5a11 100755
--- a/package/base-files/files/etc/rc.common
+++ b/package/base-files/files/etc/rc.common
@@ -1,8 +1,12 @@
 #!/bin/sh
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2009 OpenWrt.org
 
 . $IPKG_INSTROOT/etc/functions.sh
 
+initscript=$1
+action=${2:-help}
+shift 2
+
 start() {
 	return 0
 }
@@ -66,27 +70,9 @@ $EXTRA_HELP
 EOF
 }
 
-initscript="$1"
-[ "$#" -ge 1 ] && shift
-action="$1"
-[ "$#" -ge 1 ] && shift
-
 . "$initscript"
 
-cmds=
-for cmd in $EXTRA_COMMANDS; do
-	cmds="${cmds:+$cmds$N}$cmd) $cmd \"\$@\";;"
-done
-eval "case \"\$action\" in
-	start) start \"\$@\";;
-	stop) stop \"\$@\";;
-	reload) reload \"\$@\" || restart \"\$@\";;
-	restart) restart \"\$@\";;
-	boot) boot \"\$@\";;
-	shutdown) shutdown \"\$@\";;
-	enable) enable \"\$@\";;
-	enabled) enabled \"\$@\";;
-	disable) disable \"\$@\";;
-	$cmds
-	*) help;;
-esac"
+ALL_COMMANDS="start stop reload restart boot shutdown enable disable enabled depends ${EXTRA_COMMANDS}"
+list_contains ALL_COMMANDS "$action" || action=help
+[ "$action" == reload ] && action='eval reload "$@" || restart "$@" && :'
+$action "$@"