diff options
author | Colin Smith <colin@pfsense.org> | 2005-06-08 02:25:38 +0000 |
---|---|---|
committer | Colin Smith <colin@pfsense.org> | 2005-06-08 02:25:38 +0000 |
commit | 249a6b95bef7bdd3f0e7bea98513cdcababb82ff (patch) | |
tree | 25b9a87c576ce4e4277112eb7c72a6ba5fe04f6c /etc | |
parent | 9fd8feb10e35667d57bb3586fb0a05e3b46dcce0 (diff) | |
download | pfsense-249a6b95bef7bdd3f0e7bea98513cdcababb82ff.zip pfsense-249a6b95bef7bdd3f0e7bea98513cdcababb82ff.tar.gz |
We need to remove packages from the top down, not the bottom up.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/pkg-utils.inc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/etc/inc/pkg-utils.inc b/etc/inc/pkg-utils.inc index d488c70..e297314 100644 --- a/etc/inc/pkg-utils.inc +++ b/etc/inc/pkg-utils.inc @@ -572,20 +572,20 @@ function delete_package($pkg) { return; } -function delete_package_recursive($pkg, $pkgdb = "") { +function delete_package_recursive($pkg) { exec("/usr/sbin/pkg_info -r " . $pkg . " 2>&1", $info); - if(!$pkgdb) exec("/bin/ls /var/db/pkg", $pkgdb); + exec("cat {$g['tmp_path']}/y | /usr/sbin/pkg_delete " . $pkg ." > /dev/null 2>&1"); + exec("/bin/ls /var/db/pkg", $pkgdb); if(stristr($info[0], "can't find package") != false) return; foreach($info as $line) { - $depend = trim(array_pop($line)); - if(in_array($depend, $pkgdb)) delete_package_recursive($depend, $pkgdb); + $depend = trim(array_pop(explode(":", $line))); + if(in_array($depend, $pkgdb)) delete_package_recursive($depend); } $fd = fopen("{$g['tmp_path']}/y", "w"); for($line = 0; $line < 10; $line++) { fwrite($fd, "y\n"); } fclose($fd); - exec("cat {$g['tmp_path']}/y | /usr/sbin/pkg_delete " . $pkg ." > /dev/null 2>&1"); return; } |