#!/bin/sh
-# Copyright (C) 2006-2013 OpenWrt.org
+# Copyright (C) 2006-2014 OpenWrt.org
# Copyright (C) 2006 Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de>
# Copyright (C) 2010 Vertical Communications
}
insert_modules() {
- [ -d /etc/modules.d ] && {
- cd /etc/modules.d
- sed 's/^[^#]/insmod &/' $* | ash 2>&- || :
- }
+ 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=$(echo $(basename $1) | cut -d. -f1)
+ 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
}
default_postinst() {
- local name rusers
- name=$(echo $(basename $1) | cut -d. -f1)
- [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.postinst-pkg ] && ( . ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.postinst-pkg )
- rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.control)
+ local pkgname rusers ret
+ ret=0
+ pkgname=$(basename ${1%.*})
+ rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.control)
[ -n "$rusers" ] && {
- local user group
+ local user group uid gid
for a in $(echo $rusers | sed "s/Require-User://g"); do
user=""
group=""
for b in $(echo $a | sed "s/:/ /g"); do
+ local ugname ugid
+
+ ugname=$(echo $b | cut -d= -f1)
+ ugid=$(echo $b | cut -d= -f2)
+
[ -z "$user" ] && {
- user=$b
+ user=$ugname
+ uid=$ugid
continue
}
- [ -z "$group" ] && {
- group=$b
- group_add_next $b
+
+ gid=$ugid
+ [ -n "$gid" ] && {
+ group_exists $ugname || group_add $ugname $gid
+ }
+
+ [ -z "$gid" ] && {
+ group_add_next $ugname
gid=$?
- user_exists $user || user_add $user "" $gid
+ }
+
+ [ -z "$group" ] && {
+ user_exists $user || user_add $user "$uid" $gid
+ group=$ugname
continue
}
- group_add_next $b
- group_add_user $b $user
+
+ group_add_user $ugname $user
done
done
}
- [ "$PKG_UPGRADE" = "1" ] || for i in `cat ${IPKG_INSTROOT}/usr/lib/opkg/info/${name}.list | grep "^/etc/init.d/"`; do
+
+ if [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg ]; then
+ ( . ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg )
+ ret=$?
+ fi
+ [ -n "${IPKG_INSTROOT}" ] || rm -f /tmp/luci-indexcache 2>/dev/null
+
+ [ "$PKG_UPGRADE" = "1" ] || for i in `cat ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.list | grep "^/etc/init.d/"`; do
[ -n "${IPKG_INSTROOT}" ] && $(which bash) ${IPKG_INSTROOT}/etc/rc.common ${IPKG_INSTROOT}$i enable; \
[ -n "${IPKG_INSTROOT}" ] || {
$i enable
$i start
}
done
- return 0
+ return $ret
}
include() {