summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuka Perkov2016-05-10 22:36:49 +0000
committerLuka Perkov2016-05-10 22:36:49 +0000
commitf3921355e92488594d57092a140b3d03a7e9ec80 (patch)
tree7c8abf85746b75cabab6c6569b108d3de0765207
parentf646a1db3ddf95b5d7223fadad8aec8219c171d2 (diff)
downloadopenwrt-f3921355e92488594d57092a140b3d03a7e9ec80.tar.gz
base-files: evaluate uci-defaults on run-time installations
Packages may install scripts into /etc/uci-defaults to be executed once after installation, usually at the first boot of the target. This works fine if the package was installed to the rootfs during build or using the ImageBuilder. If the package is installed using opkg during run-time uci-defaults were applied only after a reboot of the device. Avoid the need to reboot by evaluting the package's uci-defaults in default-postinst. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 49340
-rwxr-xr-xpackage/base-files/files/lib/functions.sh11
1 files changed, 11 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index 4ec0cac332..cf1fa4874a 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -231,6 +231,17 @@ default_postinst() {
cd $OLDPWD
fi
+ if [ -z "$root" ] && grep -q -s "^/etc/uci-defaults/" "/usr/lib/opkg/info/${pkgname}.list"; then
+ . /lib/functions/system.sh
+ [ -d /tmp/.uci ] || mkdir -p /tmp/.uci
+ cd /etc/uci-defaults
+ for i in $(grep -s "^/etc/uci-defaults/" "/usr/lib/opkg/info/${pkgname}.list"); do
+ ( . "./$(basename $i)" ) && rm -f "$i"
+ done
+ uci commit
+ cd $OLDPWD
+ fi
+
[ -n "$root" ] || rm -f /tmp/luci-indexcache 2>/dev/null
if [ "$PKG_UPGRADE" != "1" ]; then