functions.sh: add a function for removing an item from a list in a shell variable
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 30 Jul 2008 20:35:22 +0000 (20:35 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 30 Jul 2008 20:35:22 +0000 (20:35 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12024 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/etc/functions.sh

index af4eae2..f4af4a8 100755 (executable)
@@ -24,6 +24,20 @@ append() {
        eval "export ${NO_EXPORT:+-n} -- \"$var=\${$var:+\${$var}\${value:+\$sep}}\$value\""
 }
 
+list_remove() {
+       local var="$1"
+       local remove="$2"
+       local val
+
+       eval "val=\" \${$var} \""
+       val1="${val%% $remove *}"
+       [ "$val1" = "$val" ] && return
+       val2="${val##* $remove }"
+       [ "$val2" = "$val" ] && return
+       val="${val1## } ${val2%% }"
+       eval "export ${NO_EXPORT:+-n} -- \"$var=\$val\""
+}
+
 config_load() {
        [ -n "$IPKG_INSTROOT" ] && return 0
        uci_load "$@"