config_foreach() {
local function="$1"
- local type="$2"
+ [ "$#" -ge 1 ] && shift
+ local type="$1"
+ [ "$#" -ge 1 ] && shift
local section cfgtype
[ -z "$CONFIG_SECTIONS" ] && return 0
for section in ${CONFIG_SECTIONS}; do
config_get cfgtype "$section" TYPE
[ -n "$type" -a "x$cfgtype" != "x$type" ] && continue
- eval "$function \"\$section\""
+ eval "$function \"\$section\" \"\$@\""
done
}
}
initscript="$1"
-action="$2"
+[ "$#" -ge 1 ] && shift
+action="$1"
+[ "$#" -ge 1 ] && shift
. "$initscript"
cmds=
for cmd in $EXTRA_COMMANDS; do
- cmds="${cmds:+$cmds$N}$cmd) $cmd;;"
+ 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;;
+ start) start \"\$@\";;
+ stop) stop \"\$@\";;
+ reload) reload \"\$@\" || restart \"\$@\";;
+ restart) restart \"\$@\";;
+ boot) boot \"\$@\";;
+ shutdown) shutdown \"\$@\";;
+ enable) enable \"\$@\";;
+ enabled) enabled \"\$@\";;
+ disable) disable \"\$@\";;
$cmds
*) help;;
esac"