50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright 2007 Openedhand Ltd.
|
|
#
|
|
# Author: Richard Purdie <rpurdie@openedhand.com>
|
|
#
|
|
|
|
# The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts,
|
|
# #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-posinsts.
|
|
|
|
pi_dir=""
|
|
for pm in rpm deb ipk; do
|
|
if [ -d "#SYSCONFDIR#/${pm}-postinsts" ]; then
|
|
pi_dir=#SYSCONFDIR#/${pm}-postinsts
|
|
break
|
|
fi
|
|
done
|
|
|
|
[ -z "$pi_dir" ] && exit 0
|
|
|
|
[ -e #SYSCONFDIR#/default/postinst ] && . #SYSCONFDIR#/default/postinst
|
|
|
|
remove_pi_dir=1
|
|
for i in `ls $pi_dir`; do
|
|
i=$pi_dir/$i
|
|
echo "Running postinst $i..."
|
|
[ "$POSTINST_LOGGING" = "1" ] && echo "Running postinst $i..." >> $LOGFILE
|
|
if [ -x $i ]; then
|
|
if [ "$POSTINST_LOGGING" = "1" ]; then
|
|
sh -c $i >>$LOGFILE 2>&1
|
|
else
|
|
sh -c $i
|
|
fi
|
|
rm $i
|
|
else
|
|
echo "ERROR: postinst $i failed."
|
|
[ "$POSTINST_LOGGING" = "1" ] && echo "ERROR: postinst $i failed." >> $LOGFILE
|
|
remove_pi_dir=0
|
|
fi
|
|
done
|
|
|
|
# since all postinstalls executed successfully, remove the postinstalls directory
|
|
# and the rcS.d link
|
|
if [ $remove_pi_dir = 1 ]; then
|
|
rm -rf $pi_dir
|
|
if [ -n "`which update-rc.d`" ]; then
|
|
update-rc.d -f run-postinsts remove
|
|
fi
|
|
fi
|