diff options
Diffstat (limited to 'meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts')
-rwxr-xr-x | meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts | 63 |
1 files changed, 40 insertions, 23 deletions
diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts index 11141ec71f..08cfa9e59f 100755 --- a/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts +++ b/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts | |||
@@ -8,13 +8,9 @@ | |||
8 | # The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts, | 8 | # The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts, |
9 | # #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-posinsts. | 9 | # #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-posinsts. |
10 | 10 | ||
11 | pi_dir="" | 11 | pm=#IMAGE_PKGTYPE# |
12 | for pm in rpm deb ipk; do | 12 | pm_installed=#PM_INSTALLED# |
13 | if [ -d "#SYSCONFDIR#/${pm}-postinsts" ]; then | 13 | pi_dir=#SYSCONFDIR#/${pm}-postinsts |
14 | pi_dir=#SYSCONFDIR#/${pm}-postinsts | ||
15 | break | ||
16 | fi | ||
17 | done | ||
18 | 14 | ||
19 | remove_rcsd_link () { | 15 | remove_rcsd_link () { |
20 | if [ -n "`which update-rc.d`" ]; then | 16 | if [ -n "`which update-rc.d`" ]; then |
@@ -29,24 +25,45 @@ fi | |||
29 | 25 | ||
30 | [ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst | 26 | [ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst |
31 | 27 | ||
32 | remove_pi_dir=1 | 28 | if [ "$POSTINST_LOGGING" = "1" ]; then |
33 | for i in `ls $pi_dir`; do | 29 | rm -f $LOGFILE |
34 | i=$pi_dir/$i | 30 | append_log=">>$LOGFILE 2>&1" |
35 | echo "Running postinst $i..." | 31 | fi |
36 | [ "$POSTINST_LOGGING" = "1" ] && echo "Running postinst $i..." >> $LOGFILE | 32 | |
37 | if [ -x $i ]; then | 33 | exec_postinst_scriptlets() { |
38 | if [ "$POSTINST_LOGGING" = "1" ]; then | 34 | for i in `ls $pi_dir`; do |
39 | sh -c $i >>$LOGFILE 2>&1 | 35 | i=$pi_dir/$i |
36 | echo "Running postinst $i..." | ||
37 | [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log | ||
38 | if [ -x $i ]; then | ||
39 | eval sh -c $i $append_log | ||
40 | rm $i | ||
40 | else | 41 | else |
41 | sh -c $i | 42 | echo "ERROR: postinst $i failed." |
43 | [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log | ||
44 | remove_pi_dir=0 | ||
42 | fi | 45 | fi |
43 | rm $i | 46 | done |
44 | else | 47 | } |
45 | echo "ERROR: postinst $i failed." | 48 | |
46 | [ "$POSTINST_LOGGING" = "1" ] && echo "ERROR: postinst $i failed." >> $LOGFILE | 49 | remove_pi_dir=1 |
47 | remove_pi_dir=0 | 50 | if $pm_installed; then |
48 | fi | 51 | case $pm in |
49 | done | 52 | "ipk") |
53 | eval opkg-cl configure $append_log | ||
54 | ;; | ||
55 | |||
56 | "deb") | ||
57 | eval dpkg --configure -a $append_log | ||
58 | ;; | ||
59 | |||
60 | "rpm") | ||
61 | exec_postinst_scriptlets | ||
62 | ;; | ||
63 | esac | ||
64 | else | ||
65 | exec_postinst_scriptlets | ||
66 | fi | ||
50 | 67 | ||
51 | # since all postinstalls executed successfully, remove the postinstalls directory | 68 | # since all postinstalls executed successfully, remove the postinstalls directory |
52 | # and the rcS.d link | 69 | # and the rcS.d link |