summaryrefslogtreecommitdiffstats
path: root/etc/inc/pkg-utils.inc
diff options
context:
space:
mode:
authorColin Smith <colin@pfsense.org>2005-06-11 22:29:04 +0000
committerColin Smith <colin@pfsense.org>2005-06-11 22:29:04 +0000
commit3f01fe47376ec40c2a7226e5801d3d2b52acf5d7 (patch)
tree99474cca9150d94269ae05f89e3184c8fcb25797 /etc/inc/pkg-utils.inc
parentfd371d6dfdd230f211c064f2c2a75931bcb55b70 (diff)
downloadpfsense-3f01fe47376ec40c2a7226e5801d3d2b52acf5d7.zip
pfsense-3f01fe47376ec40c2a7226e5801d3d2b52acf5d7.tar.gz
Don't attempt to parse package configuration on deinstall if it doesn't exist.
reported-by: Scott
Diffstat (limited to 'etc/inc/pkg-utils.inc')
-rw-r--r--etc/inc/pkg-utils.inc100
1 files changed, 52 insertions, 48 deletions
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc
index 0cc629f..e396510 100644
--- a/etc/inc/pkg-utils.inc
+++ b/etc/inc/pkg-utils.inc
@@ -459,7 +459,7 @@ function install_package_xml($pkg) {
echo "\n<script language=\"JavaScript\">document.progressbar.style.visibility='hidden';</script>";
echo "\n<script language=\"JavaScript\">document.progholder.style.visibility='hidden';</script>";
sleep(1);
- die;
+ return;
} else {
$pkg_info = $config['installedpackages']['package'][$pkgid];
}
@@ -566,7 +566,7 @@ function install_package_xml($pkg) {
echo "\n<script language=\"JavaScript\">document.progressbar.style.visibility='hidden';</script>";
echo "\n<script language=\"JavaScript\">document.progholder.style.visibility='hidden';</script>";
sleep(1);
- die;
+ return;
}
}
@@ -606,7 +606,7 @@ function delete_package_xml($pkg) {
echo "\n<script language=\"JavaScript\">document.progressbar.style.visibility='hidden';</script>";
echo "\n<script language=\"JavaScript\">document.progholder.style.visibility='hidden';</script>";
sleep(1);
- die;
+ return;
}
/* set up logging if needed */
if(!$fd_log) {
@@ -621,56 +621,60 @@ function delete_package_xml($pkg) {
/* parse package configuration */
$packages = &$config['installedpackages']['package'];
$menus = &$config['installedpackages']['menu'];
- $pkg_config = parse_xml_config("/usr/local/pkg/" . $packages[$pkgid]['configurationfile'], "packagegui");
- /* remove menu items */
- if(is_array($pkg_config['menu'])) {
- $static_output .= "\tMenu items... ";
- update_output_window($static_output);
- foreach($menus as $menu) $instmenus[] = $menu['name'];
- foreach($pkg_config['menu'] as $menu) {
- foreach($instmenus as $key => $instmenu) {
- if($instmenu == $menu['name']) unset($menus[$key]);
+ if(file_exists("/usr/local/pkg" . $packages[$pkgid]['configurationfile'])) {
+ $pkg_config = parse_xml_config("/usr/local/pkg/" . $packages[$pkgid]['configurationfile'], "packagegui");
+ /* remove menu items */
+ if(is_array($pkg_config['menu'])) {
+ $static_output .= "\tMenu items... ";
+ update_output_window($static_output);
+ foreach($menus as $menu) $instmenus[] = $menu['name'];
+ foreach($pkg_config['menu'] as $menu) {
+ foreach($instmenus as $key => $instmenu) {
+ if($instmenu == $menu['name']) unset($menus[$key]);
+ }
}
+ $static_output .= "done.\n";
+ update_output_window($static_output);
}
- $static_output .= "done.\n";
- update_output_window($static_output);
- }
- /* evalate this package's global functions and pre deinstall commands */
- if($pkg_config['custom_php_global_functions'] <> "") eval($pkg_config['custom_php_global_functions']);
- if($pkg_config['custom_php_pre_deinstall_command'] <> "") eval($pkg_config['custom_php_pre_deinstall_command']);
- /* remove all additional files */
- if($pkg_config['additional_files_needed'] <> "") {
- $static_output .= "\tAuxiliary files... ";
- update_output_window($static_output);
- foreach($pkg_config['additional_files_needed'] as $afn) {
- $filename = get_filename_from_url($afn['item'][0]);
- if($afn['prefix'] <> "") {
- $prefix = $afn['prefix'];
- } else {
- $prefix = "/usr/local/pkg/";
+ /* evalate this package's global functions and pre deinstall commands */
+ if($pkg_config['custom_php_global_functions'] <> "")
+ eval($pkg_config['custom_php_global_functions']);
+ if($pkg_config['custom_php_pre_deinstall_command'] <> "")
+ eval($pkg_config['custom_php_pre_deinstall_command']);
+ /* remove all additional files */
+ if($pkg_config['additional_files_needed'] <> "") {
+ $static_output .= "\tAuxiliary files... ";
+ update_output_window($static_output);
+ foreach($pkg_config['additional_files_needed'] as $afn) {
+ $filename = get_filename_from_url($afn['item'][0]);
+ if($afn['prefix'] <> "") {
+ $prefix = $afn['prefix'];
+ } else {
+ $prefix = "/usr/local/pkg/";
+ }
+ unlink_if_exists($prefix . $filename);
+ }
+ $static_output .= "done.\n";
+ update_output_window($static_output);
+ }
+ /* system files */
+ if($pkg_config['modify_system']['item'] <> "") {
+ $static_output .= "\tSystem files... ";
+ update_output_window($static_output);
+ foreach($pkg_config['modify_system']['item'] as $ms) {
+ if($ms['textneeded']) remove_text_from_file($ms['modifyfilename'], $ms['textneeded']);
}
- unlink_if_exists($prefix . $filename);
+ $static_output .= "done.\n";
+ update_output_window($static_output);
}
- $static_output .= "done.\n";
- update_output_window($static_output);
- }
- /* system files */
- if($pkg_config['modify_system']['item'] <> "") {
- $static_output .= "\tSystem files... ";
- update_output_window($static_output);
- foreach($pkg_config['modify_system']['item'] as $ms) {
- if($ms['textneeded']) remove_text_from_file($ms['modifyfilename'], $ms['textneeded']);
+ /* syslog */
+ if($pkg_config['logging']['logfile_name'] <> "") {
+ $static_output .= "\tSyslog entries... ";
+ update_output_window($static_output);
+ remove_text_from_file("/etc/syslog.conf", $pkg_config['logging']['facilityname'] . "\t\t\t\t" . $pkg_config['logging']['logfilename']);
+ $static_output .= "done.\n";
+ update_output_window($static_output);
}
- $static_output .= "done.\n";
- update_output_window($static_output);
- }
- /* syslog */
- if($pkg_config['logging']['logfile_name'] <> "") {
- $static_output .= "\tSyslog entries... ";
- update_output_window($static_output);
- remove_text_from_file("/etc/syslog.conf", $pkg_config['logging']['facilityname'] . "\t\t\t\t" . $pkg_config['logging']['logfilename']);
- $static_output .= "done.\n";
- update_output_window($static_output);
}
/* remove config.xml entries */
$static_output .= "\tConfiguration... ";
OpenPOWER on IntegriCloud