diff options
author | Stephen Beaver <sbeaver@netgate.com> | 2015-10-15 13:03:15 -0400 |
---|---|---|
committer | Stephen Beaver <sbeaver@netgate.com> | 2015-10-15 13:04:08 -0400 |
commit | f16d76c399001ddc75fc6d72e37a8e1b64c05594 (patch) | |
tree | 3f45fb0d473a3960e2e56fa8dc38517cce5d795d /src/usr/local/sbin | |
parent | d1867dd2884a900cbe8abc7278e383ce4f6ea477 (diff) | |
download | pfsense-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-x | src/usr/local/sbin/pfSense-upgrade | 18 |
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} |