diff options
author | Colin Smith <colin@pfsense.org> | 2005-06-11 22:29:04 +0000 |
---|---|---|
committer | Colin Smith <colin@pfsense.org> | 2005-06-11 22:29:04 +0000 |
commit | 3f01fe47376ec40c2a7226e5801d3d2b52acf5d7 (patch) | |
tree | 99474cca9150d94269ae05f89e3184c8fcb25797 /etc | |
parent | fd371d6dfdd230f211c064f2c2a75931bcb55b70 (diff) | |
download | pfsense-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')
-rw-r--r-- | etc/inc/pkg-utils.inc | 100 |
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... "; |