diff options
Diffstat (limited to 'package/base-files/files')
| -rwxr-xr-x | package/base-files/files/bin/uci | 3 | ||||
| -rwxr-xr-x | package/base-files/files/etc/init.d/config | 9 | ||||
| -rw-r--r-- | package/base-files/files/lib/config/uci.sh | 11 | 
3 files changed, 22 insertions, 1 deletions
diff --git a/package/base-files/files/bin/uci b/package/base-files/files/bin/uci index f8e08f874..4df8f33ff 100755 --- a/package/base-files/files/bin/uci +++ b/package/base-files/files/bin/uci @@ -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  +		[ "${package##.*}" != "$package" ] && continue # ignore .lock files  		uci_commit "$package"  	done  } diff --git a/package/base-files/files/etc/init.d/config b/package/base-files/files/etc/init.d/config new file mode 100755 index 000000000..2a1497503 --- /dev/null +++ b/package/base-files/files/etc/init.d/config @@ -0,0 +1,9 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006 OpenWrt.org + +START=15 + +start() { +	include /lib/config +	uci_apply_defaults +} diff --git a/package/base-files/files/lib/config/uci.sh b/package/base-files/files/lib/config/uci.sh index 43bb981cc..e1571cc89 100644 --- a/package/base-files/files/lib/config/uci.sh +++ b/package/base-files/files/lib/config/uci.sh @@ -28,6 +28,17 @@ uci_load() {  	}  } +uci_apply_defaults() {( +	cd /etc/uci-defaults || return 0 +	files="$(ls)" +	[ -z "$files" ] && return 0 +	mkdir -p /tmp/.uci +	for file in $files; do +		( . "./$(basename $file)" ) && rm -f "$file" +	done +	uci commit +)} +  uci_do_update() {  	local FILENAME="$1"  	local UPDATE="$2"  | 
