diff options
Diffstat (limited to 'src/usr/local/share/pfSense/post_upgrade_command')
-rwxr-xr-x | src/usr/local/share/pfSense/post_upgrade_command | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/usr/local/share/pfSense/post_upgrade_command b/src/usr/local/share/pfSense/post_upgrade_command new file mode 100755 index 0000000..097bc5c --- /dev/null +++ b/src/usr/local/share/pfSense/post_upgrade_command @@ -0,0 +1,64 @@ +#!/bin/sh + +/etc/rc.conf_mount_rw + +PFSENSETYPE=`cat /etc/platform` + +if [ "${PFSENSETYPE}" = "pfSense" -o "${PFSENSETYPE}" = "nanobsd" ]; then + touch /conf/needs_package_sync +fi + +# Detect interactive logins and display the shell +detect_command='[ -n "$SSH_TTY" -o "$TERM" = "cons25" ] && exec /etc/rc.initial' +echo "${detect_command}" > ${CVS_CO_DIR}/root/.shrc +echo "${detect_command}" >> ${CVS_CO_DIR}/root/.profile + +if [ "${PFSENSETYPE}" = "nanobsd" ]; then + ROOT=/tmp/${1}/ +else + ROOT=/ +fi + +# Now turn on or off serial console as needed +echo "Checking for ${ROOT}usr/local/share/pfSense/post_upgrade_command.php... " >> /conf/upgrade_log.txt +if [ -x ${ROOT}usr/local/share/pfSense/post_upgrade_command.php ]; then + echo "Running ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1" >> /conf/upgrade_log.txt + ${ROOT}usr/local/share/pfSense/post_upgrade_command.php $1 >> /conf/upgrade_log.txt 2>&1 +fi + +# Remove any previous MD5 sum files +rm -f /root/*.md5 >/dev/null 2>&1 + +# Fixup permissions on installed files +if [ -f ${ROOT}usr/local/share/pfSense/base.mtree ]; then + if [ -x "/tmp/mtree.old" ]; then + MTREE_BIN=/tmp/mtree.old + else + MTREE_BIN=/usr/sbin/mtree + fi + ${MTREE_BIN} -U -e -q -f ${ROOT}usr/local/share/pfSense/base.mtree -p ${ROOT} > /conf/mtree.log +fi + +# Make sure to preserve existing time zone +if [ "${PFSENSETYPE}" = "nanobsd" -a -f /etc/localtime ]; then + /bin/cp -p /etc/localtime ${ROOT}etc/localtime 2>/dev/null +fi + +# Files may contain spaces +oIFS=${IFS} +IFS=" +" +# Obsolete files - nanobsd doesn't need it since a new image is installed +# on the other partition +if [ "${PFSENSETYPE}" != "nanobsd" -a -f /etc/pfSense.obsoletedfiles ]; then + for f in $(cat /etc/pfSense.obsoletedfiles); do + if [ -n "${f}" -a -f "${f}" ]; then + rm -f "${f}" + elif [ -n "${f}" -a -d "${f}" ]; then + rm -rf "${f}" + fi + done +fi + +# Restore IFS +IFS=${oIFS} |