[Feature][YUKUAI_patch]add 18.02 code
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: I7f71153004f10fc0ea5adfa083866aaeeb1053ac
diff --git a/rootfs/usr/sbin/run-postinsts b/rootfs/usr/sbin/run-postinsts
new file mode 100755
index 0000000..cde2195
--- /dev/null
+++ b/rootfs/usr/sbin/run-postinsts
@@ -0,0 +1,98 @@
+#!/bin/sh
+#
+# Copyright 2007 Openedhand Ltd.
+#
+# Author: Richard Purdie <rpurdie@openedhand.com>
+#
+
+# The following script will run all the scriptlets found in /etc/deb-postinsts,
+# /etc/ipk-postinsts or /etc/rpm-postinsts or the package manager in
+# case available.
+
+# the order of this list is important, do not change!
+backend_list="rpm deb ipk"
+
+pm_installed=false
+
+for pm in $backend_list; do
+ # found the package manager, it has postinsts
+ case $pm in
+ "deb")
+ if [ -s "/var/lib/dpkg/status" ]; then
+ pm_installed=true
+ break
+ fi
+ ;;
+
+ "ipk")
+ if [ -s "/var/lib/opkg/status" ]; then
+ pm_installed=true
+ break
+ fi
+ ;;
+ esac
+
+ pi_dir="/etc/$pm-postinsts"
+
+ # found postinsts directory
+ if [ -d $pi_dir ]; then
+ break
+ fi
+done
+
+remove_rcsd_link () {
+ if [ -n "`which update-rc.d`" ]; then
+ update-rc.d -f run-postinsts remove
+ fi
+}
+
+if ! [ -d $pi_dir ] && ! $pm_installed; then
+ remove_rcsd_link
+ exit 0
+fi
+
+echo "Configuring packages on first boot...."
+echo " (This may take several minutes. Please do not power off the machine.)"
+
+[ -e /etc/default/postinst ] && . /etc/default/postinst
+
+if [ "$POSTINST_LOGGING" = "1" ]; then
+ rm -f $LOGFILE
+ append_log=">>$LOGFILE 2>&1"
+fi
+
+exec_postinst_scriptlets() {
+ for i in `ls $pi_dir`; do
+ i=$pi_dir/$i
+ echo "Running postinst $i..."
+ [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log
+ if [ -x $i ]; then
+ (sh -c $i $append_log)
+ rm $i
+ else
+ echo "ERROR: postinst $i failed."
+ [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log
+ remove_rcsd_link=0
+ fi
+ done
+}
+
+remove_rcsd_link=1
+if $pm_installed; then
+ case $pm in
+ "ipk")
+ eval opkg configure $append_log
+ ;;
+
+ "deb")
+ eval dpkg --configure -a $append_log
+ ;;
+ esac
+else
+ exec_postinst_scriptlets
+fi
+
+# since all postinstalls executed successfully, remove the rcS.d link
+if [ $remove_rcsd_link = 1 ]; then
+ remove_rcsd_link
+fi