summaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/functions.sh
diff options
context:
space:
mode:
authorYousong Zhou <yszhou4tech@gmail.com>2019-06-20 10:29:53 +0000
committerYousong Zhou <yszhou4tech@gmail.com>2019-06-21 03:29:20 +0000
commit3dc4f59eabaed5135cd4eed8d1846248d5f1b37c (patch)
treee44998ed5ef1650342dd95647cde17b57b4d229e /package/base-files/files/lib/functions.sh
parenta8f0c02f80fa0c7c55702770b3ca99f6db5405e7 (diff)
downloadopenwrt-3dc4f59eabaed5135cd4eed8d1846248d5f1b37c.tar.gz
openwrt-3dc4f59eabaed5135cd4eed8d1846248d5f1b37c.tar.bz2
openwrt-3dc4f59eabaed5135cd4eed8d1846248d5f1b37c.zip
base-files: apply new sysctl.conf at postinst
This is mainly for kmod-br-netfilter. To turn off bridge-netfilter-call-xxx immediately after installation While at it - Define filelist="/usr/lib/opkg/info/${pkgname}.list" - Reuse "[ -z "$root" ]" - Grep with "-m1" Fixes FS#2300 Reported-by: Marco Sartorius <tidbits@ormoorgmen.info> Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Diffstat (limited to 'package/base-files/files/lib/functions.sh')
-rwxr-xr-xpackage/base-files/files/lib/functions.sh33
1 files changed, 20 insertions, 13 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index edce75e8ff..860fc04510 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -213,6 +213,7 @@ add_group_and_user() {
default_postinst() {
local root="${IPKG_INSTROOT}"
local pkgname="$(basename ${1%.*})"
+ local filelist="/usr/lib/opkg/info/${pkgname}.list"
local ret=0
add_group_and_user "${pkgname}"
@@ -227,23 +228,29 @@ default_postinst() {
rm -fR $root/rootfs-overlay/
fi
- if [ -z "$root" ] && grep -q -s "^/etc/modules.d/" "/usr/lib/opkg/info/${pkgname}.list"; then
- kmodloader
- fi
+ if [ -z "$root" ]; then
+ if grep -m1 -q -s "^/etc/modules.d/" "$filelist"; then
+ kmodloader
+ 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
- for i in $(grep -s "^/etc/uci-defaults/" "/usr/lib/opkg/info/${pkgname}.list"); do
- ( [ -f "$i" ] && cd "$(dirname $i)" && . "$i" ) && rm -f "$i"
- done
- uci commit
- fi
+ if grep -m1 -q -s "^/etc/sysctl.d/" "$filelist"; then
+ /etc/init.d/sysctl restart
+ fi
- [ -n "$root" ] || rm -f /tmp/luci-indexcache 2>/dev/null
+ if grep -m1 -q -s "^/etc/uci-defaults/" "$filelist"; then
+ . /lib/functions/system.sh
+ [ -d /tmp/.uci ] || mkdir -p /tmp/.uci
+ for i in $(grep -s "^/etc/uci-defaults/" "$filelist"); do
+ ( [ -f "$i" ] && cd "$(dirname $i)" && . "$i" ) && rm -f "$i"
+ done
+ uci commit
+ fi
+
+ rm -f /tmp/luci-indexcache
+ fi
local shell="$(which bash)"
- for i in $(grep -s "^/etc/init.d/" "$root/usr/lib/opkg/info/${pkgname}.list"); do
+ for i in $(grep -s "^/etc/init.d/" "$root$filelist"); do
if [ -n "$root" ]; then
${shell:-/bin/sh} "$root/etc/rc.common" "$root$i" enable
else