summaryrefslogtreecommitdiffstats
path: root/src/usr/local/sbin
diff options
context:
space:
mode:
authorStephen Beaver <sbeaver@netgate.com>2015-10-15 13:03:15 -0400
committerStephen Beaver <sbeaver@netgate.com>2015-10-15 13:04:08 -0400
commitf16d76c399001ddc75fc6d72e37a8e1b64c05594 (patch)
tree3f45fb0d473a3960e2e56fa8dc38517cce5d795d /src/usr/local/sbin
parentd1867dd2884a900cbe8abc7278e383ce4f6ea477 (diff)
downloadpfsense-f16d76c399001ddc75fc6d72e37a8e1b64c05594.zip
pfsense-f16d76c399001ddc75fc6d72e37a8e1b64c05594.tar.gz
Added "reinstall all packages" functionality (accessed via diag_backup.php)
Diffstat (limited to 'src/usr/local/sbin')
-rwxr-xr-xsrc/usr/local/sbin/pfSense-upgrade18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/usr/local/sbin/pfSense-upgrade b/src/usr/local/sbin/pfSense-upgrade
index 280baeb..b314e64 100755
--- a/src/usr/local/sbin/pfSense-upgrade
+++ b/src/usr/local/sbin/pfSense-upgrade
@@ -549,6 +549,17 @@ pkg_delete() {
_exec "pkg autoremove" "Removing stale packages" mute ignore_result
}
+pkg_reinstall_all() {
+ for _pkg in $(pkg query -e '%a == 0' %n); do
+ case "${_pkg}" in
+ "${platform}"-pkg-* )
+ echo reinstalling ${_pkg}
+ pkg_install ${_pkg} 1
+ ;;
+ esac
+ done
+}
+
pid_file="/var/run/$(basename $0).pid"
last_update_file="/var/run/$(basename $0)-last-update"
logfile="/cf/conf/upgrade_log.txt"
@@ -679,7 +690,12 @@ case "${action}" in
pkg_update force
;;
install)
- pkg_install ${action_pkg} ${force}
+ if [ ${action_pkg} == "ALL_PACKAGES" ] && [ -n ${force} ]; then
+ echo "Reinstalling every single package"
+ pkg_reinstall_all
+ else
+ pkg_install ${action_pkg} ${force}
+ fi
;;
delete)
pkg_delete ${action_pkg}
OpenPOWER on IntegriCloud