+ for m in $*; do
+ if [ -f /etc/modules.d/$m ]; then
+ sed 's/^[^#]/insmod &/' /etc/modules.d/$m | ash 2>&- || :
+ else
+ modprobe $m
+ fi
+ done
+}
+
+default_prerm() {
+ local name
+ name=$(basename ${1%.*})
+ [ -f /usr/lib/opkg/info/${name}.prerm-pkg ] && . /usr/lib/opkg/info/${name}.prerm-pkg
+ for i in `cat /usr/lib/opkg/info/${name}.list | grep "^/etc/init.d/"`; do
+ $i disable
+ $i stop
+ done
+}
+
+default_postinst() {
+ local root="${IPKG_INSTROOT}"
+ local pkgname="$(basename ${1%.*})"
+ local rusers="$(sed -ne 's/^Require-User: *//p' $root/usr/lib/opkg/info/${pkgname}.control 2>/dev/null)"
+ local ret=0
+
+ if [ -n "$rusers" ]; then
+ local tuple oIFS="$IFS"
+ for tuple in $rusers; do
+ local uid gid uname gname
+
+ IFS=":"
+ set -- $tuple; uname="$1"; gname="$2"
+ IFS="="
+ set -- $uname; uname="$1"; uid="$2"
+ set -- $gname; gname="$1"; gid="$2"
+ IFS="$oIFS"
+
+ if [ -n "$gname" ] && [ -n "$gid" ]; then
+ group_exists "$gname" || group_add "$gname" "$gid"
+ elif [ -n "$gname" ]; then
+ group_add_next "$gname"; gid=$?
+ fi
+
+ if [ -n "$uname" ]; then
+ user_exists "$uname" || user_add "$uname" "$uid" "$gid"
+ fi
+
+ if [ -n "$uname" ] && [ -n "$gname" ]; then
+ group_add_user "$gname" "$uname"
+ fi
+
+ unset uid gid uname gname
+ done
+ fi
+
+ if [ -f "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" ]; then
+ ( . "$root/usr/lib/opkg/info/${pkgname}.postinst-pkg" )
+ ret=$?
+ fi
+
+ [ -n "$root" ] || rm -f /tmp/luci-indexcache 2>/dev/null
+
+ if [ "$PKG_UPGRADE" != "1" ]; then
+ local shell="$(which bash)"
+ for i in $(grep -s "^/etc/init.d/" "$root/usr/lib/opkg/info/${pkgname}.list"); do
+ if [ -n "$root" ]; then
+ ${shell:-/bin/sh} "$root/etc/rc.common" "$root$i" enable
+ else
+ "$i" enable
+ "$i" start
+ fi
+ done
+ fi
+
+ return $ret