Page MenuHomeFreeBSD

D5846.id15597.diff
No OneTemporary

D5846.id15597.diff

Index: usr.sbin/service/service.sh
===================================================================
--- usr.sbin/service/service.sh
+++ usr.sbin/service/service.sh
@@ -46,6 +46,26 @@
echo ''
}
+load_script_vars() {
+ eval "$( SQ="'" sh -c '
+ exec 9<&1 > /dev/null 2>&1
+ . /etc/rc.subr
+ load_rc_config() { name="$1"; }
+ run_rc_command() { :; }
+ dumpvar() {
+ eval local left= right=\"\$$var\"
+ while case "$right" in *$SQ*) : ;; *) false; esac; do
+ left="$left${right%%$SQ*}$SQ\\$SQ$SQ"
+ right="${right#*$SQ}"
+ done
+ echo "$var=$SQ$left${right#*$SQ}$SQ"
+ }
+ # Trap expanded $* since script could alter it before EXIT
+ trap "for var in $*; do dumpvar >&9; done" EXIT
+ . "$0"
+ ' -- "$@" )"
+}
+
while getopts 'ehlrRv' COMMAND_LINE_ARGUMENT ; do
case "${COMMAND_LINE_ARGUMENT}" in
e) ENABLED=eopt ;;
@@ -69,9 +89,8 @@
for file in `reverse_list ${files}`; do
if grep -q ^rcvar $file; then
- eval `grep ^name= $file`
- eval `grep ^rcvar $file`
- if [ -n "$rcvar" ]; then
+ load_script_vars $file name rcvar
+ if [ -n "$name" -a -n "$rcvar" ]; then
load_rc_config_var ${name} ${rcvar}
fi
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} stop
@@ -79,8 +98,7 @@
done
for file in $files; do
if grep -q ^rcvar $file; then
- eval `grep ^name= $file`
- eval `grep ^rcvar $file`
+ load_script_vars $file name rcvar
checkyesno $rcvar 2>/dev/null && run_rc_script ${file} start
fi
done
@@ -101,9 +119,8 @@
if [ -n "$ENABLED" ]; then
for file in $files; do
if grep -q ^rcvar $file; then
- eval `grep ^name= $file`
- eval `grep ^rcvar $file`
- if [ -n "$rcvar" ]; then
+ load_script_vars $file name rcvar
+ if [ -n "$name" -a -n "$rcvar" ]; then
load_rc_config_var ${name} ${rcvar}
fi
checkyesno $rcvar 2>/dev/null && echo $file

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 18, 10:17 AM (9 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31713209
Default Alt Text
D5846.id15597.diff (1 KB)

Event Timeline