X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/05adaa9794e41d02870a74a1ed7ba58cc59b9286..5cd6d51b7641a9ade3654ef425d3c796c537d27b:/package/base-files/files/bin/uci diff --git a/package/base-files/files/bin/uci b/package/base-files/files/bin/uci index 9b50380df..f89fe82b7 100755 --- a/package/base-files/files/bin/uci +++ b/package/base-files/files/bin/uci @@ -1,8 +1,8 @@ #!/bin/sh # Shell script for interacting with config files # -# Copyright (C) 2006 by Fokus Fraunhofer -# Copyright (C) 2006 by Felix Fietkau +# Copyright (C) 2006 Fokus Fraunhofer +# Copyright (C) 2006,2007 Felix Fietkau # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,8 +18,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -. /etc/functions.sh -include /lib/config +. $UCI_ROOT/etc/functions.sh +include $UCI_ROOT/lib/config SEP="[^0-9A-Za-z_]" @@ -47,7 +47,7 @@ do_set() { local VALUE strtok "$1" PACKAGE . CONFIG = VALUE - [ $? -ne 3 ] && { + [ $? -ne 3 -a $? -ne 2 ] && { uci_usage set exit 1 } @@ -86,6 +86,7 @@ do_remove() { do_commit() { local PACKAGE="$1" for package in ${PACKAGE:-$(cd /tmp/.uci; ls)}; do + [ lock = "${package##*.}" ] && continue # ignore .lock files uci_commit "$package" done } @@ -101,11 +102,11 @@ do_show() { exit 1 } - for package in ${PACKAGE:-$(cd /etc/config; ls)}; do + for package in ${PACKAGE:-$(cd $UCI_ROOT/etc/config; ls)}; do SECTION="" config_cb() { - if [ -z "$CONFIG" -o "$CONFIG" = "$2" ]; then + if [ -z "$CONFIG" -o ."$CONFIG" = ."$2" ]; then append SECTION "$2" option_cb() { append "${CONFIG_SECTION}_VARS" "$1" @@ -136,6 +137,14 @@ do_show() { done } +do_validate() { + [ "$#" -ne 1 ] && { + uci_usage validate + exit 1 + } + uci_validate "$1" || exit "$?" +} + uci_usage() { case "$1" in show) echo "$0 show [[.]]";; @@ -144,6 +153,7 @@ uci_usage() { del) echo "$0 del .[.