#!/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
# 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_]"
local VALUE
strtok "$1" PACKAGE . CONFIG = VALUE
- [ $? -ne 3 ] && {
+ [ $? -ne 3 -a $? -ne 2 ] && {
uci_usage set
exit 1
}
do_commit() {
local PACKAGE="$1"
for package in ${PACKAGE:-$(cd /tmp/.uci; ls)}; do
+ [ "${package##.*}" != "$package" ] && continue # ignore .lock files
uci_commit "$package"
done
}
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() {
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>]]";;
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
uci_usage del
uci_usage rename
uci_usage commit
+ uci_usage validate
echo
exit 1
;;
exit 0
fi
-local CMD="$1"
+CMD="$1"
shift
case "$CMD" in
set) do_set "$@";;
get) do_get "$@";;
show) do_show "$@";;
commit) do_commit "$@";;
+ validate) do_validate "$@";;
*) uci_usage;;
esac
exit 0