diff options
-rw-r--r-- | etc/inc/pkg-utils.inc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc index 487b1bb..8b9d6a6 100644 --- a/etc/inc/pkg-utils.inc +++ b/etc/inc/pkg-utils.inc @@ -828,6 +828,11 @@ function delete_package_xml($pkg) { conf_mount_rw(); + // Back up /usr/local/lib libraries first + $static_output .= "Backing up libraries... "; + update_output_window($static_output); + exec("/usr/bin/tar czPf /tmp/pkg_libs.tgz `/bin/cat /etc/pfSense_md5.txt | /usr/bin/grep 'local/lib' | /usr/bin/awk '{ print $2 }' | /usr/bin/cut -d'(' -f2 | /usr/bin/cut -d')' -f1`"); + $pkgid = get_pkg_id($pkg); if ($pkgid == -1) { $static_output .= "The {$pkg} package is not installed.\n\nDeletion aborted."; @@ -1001,6 +1006,13 @@ function delete_package_xml($pkg) { $static_output .= "done.\n"; update_output_window($static_output); } + + // Restore libraries that we backed up + $static_output .= "\tCleaning up... "; + update_output_window($static_output); + exec("/usr/bin/tar xzPf /tmp/pkg_libs.tgz -C /"); + @unlink("/tmp/pkg_libs.tgz"); + conf_mount_ro(); /* remove config.xml entries */ $static_output .= "\tConfiguration... "; |