On Fri, 2006-10-06 at 14:52 +0200, Stefan Seyfried wrote:

> +     for cfg in $(ls -1 /etc/pm/config.d/*[^~] 2>/dev/null) ; do
> +             while read LINE; do
> +                     SKIP=false
> +                     for v in $GLOBAL_CONFIG_VARIABLES ; do
> +                             case "$LINE" in
> +                                     $v=*)   SKIP=true ;;
> +                             esac
> +                     done
> +                     $SKIP && continue
> +                     eval $LINE
> +             done < $cfg

Still seems a little wordy, and the third loop kindof bugs me.  How
about:

 source_configs()
 {
-       for cfg in $(ls -1 /etc/pm/config.d/* 2>/dev/null) ; do
-               [[ "$cfg" =~ ".*~$" ]] && continue
-               STR=". $cfg"
-               for v in $GLOBAL_CONFIG_VARIABLES ; do
-                       STR="$STR ; echo x_$v=\"\$(eval echo \$$v)\""
-               done
-               eval $(bash -c "$STR")
-               for v in $GLOBAL_CONFIG_VARIABLES ; do
-                       eval $v="$(eval echo $(eval echo \$$v) \$x_$v)"
-               done
+       cfgs="/etc/pm/config.d/*[^~]"
+       for cfg in $cfgs ; do
+               [ -x $cfg ] || continue
+               while read LINE ; do
+                       case "$GLOBAL_CONFIG_VARIABLES " in
+                               *" ${LINE%=*} "*) continue ;;
+                               *) eval $LINE ;;
+                       esac
+               done < $cfg
        done
 }

-- 
  Peter
_______________________________________________
Pm-utils mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pm-utils

Reply via email to