[arch-projects] [PATCH] rc.d: declare ENV as an array

Seblu seblu at seblu.net
Fri May 27 10:14:13 EDT 2011


On Fri, May 27, 2011 at 3:09 PM, Dave Reisner <d at falconindy.com> wrote:
> Signed-off-by: Dave Reisner <d at falconindy.com>
> ---
> Sorry to sneak this in -- I should have noticed it earlier. This is simply a
> continuation of my crusade against eval, which would happily go to town with
> word splitting.
>
> As this conflicts with Eric's patch, one of us will need to refactor slightly.
>
> dave
>
>  rc.d |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/rc.d b/rc.d
> index 55871b1..af29574 100755
> --- a/rc.d
> +++ b/rc.d
> @@ -46,13 +46,13 @@ case $1 in
>                shift
>                # set same environment variables as init
>                runlevel=$(/sbin/runlevel)
> -               ENV="PATH='/bin:/usr/bin:/sbin:/usr/sbin'"
> -               ENV+=" PREVLEVEL='${runlevel:0:1}'"
> -               ENV+=" RUNLEVEL='${runlevel:2:1}'"
> -               ENV+=" CONSOLE='${CONSOLE:-/dev/console}'"
> -               ENV+=" TERM='${TERM}'"
> +               ENV=("PATH=/bin:/usr/bin:/sbin:/usr/sbin"
> +                       "PREVLEVEL=${runlevel%% *}"
> +                       "RUNLEVEL=${runlevel##* }"
> +                       "CONSOLE=${CONSOLE:-/dev/console}"
> +                       "TERM=$TERM")
>                for i; do
> -                       [[ -x "/etc/rc.d/$i" ]] && cd / && eval /usr/bin/env -i $ENV "/etc/rc.d/$i" "$action"
> +                       [[ -x "/etc/rc.d/$i" ]] && cd / && /usr/bin/env -i "${ENV[@]}" "/etc/rc.d/$i" "$action"
>                        (( ret += !! $? ))  # clamp exit value to 0/1
>                done
>  esac

looks good !

Thanks.

-- 
Sébastien Luttringer
www.seblu.net


More information about the arch-projects mailing list