--- 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 <carsten.tittel@fokus.fraunhofer.de> -# Copyright (C) 2006 by Felix Fietkau <nbd@openwrt.org> +# Copyright (C) 2006 Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de> +# Copyright (C) 2006,2007 Felix Fietkau <nbd@openwrt.org> # # 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 @@ local VALUE strtok "$1" PACKAGE . CONFIG = VALUE - [ $? -ne 3 ] && { + [ $? -ne 3 -a $? -ne 2 ] && { uci_usage set exit 1 } @@ -86,6 +86,7 @@ do_commit() { local PACKAGE="$1" for package in ${PACKAGE:-$(cd /tmp/.uci; ls)}; do + [ "${package##.*}" != "$package" ] && continue # ignore .lock files uci_commit "$package" done } @@ -101,7 +102,7 @@ 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() { @@ -136,6 +137,14 @@ done } +do_validate() { + [ "$#" -ne 1 ] && { + uci_usage validate + exit 1 + } + uci_validate "$1" || exit "$?" +} + uci_usage() { case "$1" in show) echo "$0 show [<package>[.<config>]]";; @@ -144,6 +153,7 @@ del) echo "$0 del <package>.<config>[.<option>]";; rename) echo "$0 rename <package> <config> <name>";; commit) echo "$0 commit [<package> ... ]";; + validate) echo "$0 validate <package>";; *) echo "Syntax: $0 <command> <arguments...>" echo @@ -153,6 +163,7 @@ uci_usage del uci_usage rename uci_usage commit + uci_usage validate echo exit 1 ;; @@ -164,7 +175,7 @@ exit 0 fi -local CMD="$1" +CMD="$1" shift case "$CMD" in set) do_set "$@";; @@ -173,6 +184,7 @@ get) do_get "$@";; show) do_show "$@";; commit) do_commit "$@";; + validate) do_validate "$@";; *) uci_usage;; esac exit 0