From: Tomas V.V.Cox Date: Thu, 15 Nov 2001 01:24:35 +0000 (+0000) Subject: implemented "uninstall" command X-Git-Tag: ChangeLog~311 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15f0f8ae23e9e13e4613eeb05e328dea2d67f2bd;p=php implemented "uninstall" command --- diff --git a/pear/PEAR/Installer.php b/pear/PEAR/Installer.php index dcfe5c8aff..194acce804 100644 --- a/pear/PEAR/Installer.php +++ b/pear/PEAR/Installer.php @@ -240,6 +240,29 @@ class PEAR_Installer extends PEAR_Common } // }}} + + function uninstall($package) + { + if (empty($this->registry)) { + $this->registry = new PEAR_Registry; + } + if (!$this->registry->packageExists($package)) { + return $this->raiseError("is not installed"); + } + $info = $this->registry->packageInfo($package); + foreach ($info['filelist'] as $file => $props) { + $base = (isset($props['baseinstalldir'])) ? $props['baseinstalldir'] : ''; + $path = PEAR_INSTALL_DIR . DIRECTORY_SEPARATOR . $base . + DIRECTORY_SEPARATOR . $file; + if (!@unlink($path)) { + $this->log(2, "unable to delete: $path"); + } else { + $this->log(2, "+ deleted file: $path"); + } + } + $this->registry->deletePackage($package); + return true; + } } ?> \ No newline at end of file diff --git a/pear/scripts/pear.in b/pear/scripts/pear.in index 2784a4ed9a..d80e9aad20 100644 --- a/pear/scripts/pear.in +++ b/pear/scripts/pear.in @@ -84,7 +84,7 @@ foreach ($opts as $opt) { $config = new PEAR_Config($pear_user_config, $pear_default_config); $store_user_config = false; $store_default_config = false; -$verbose = 0; +$verbose = 1; foreach ($opts as $opt) { $param = $opt[1]; @@ -185,6 +185,19 @@ switch ($command) { break; } + // }}} + // {{{ uninstall + case 'uninstall': { + include_once 'PEAR/Installer.php'; + $pkgfile = $options[1][2]; + $installer =& new PEAR_Installer($script_dir, $ext_dir, $doc_dir); + $installer->setErrorHandling(PEAR_ERROR_DIE, + basename($pkgfile) . ": %s\n"); + $installer->debug = $verbose; + $installer->uninstall($pkgfile); + print "uninstall ok\n"; + break; + } // }}} // {{{ package @@ -315,6 +328,7 @@ function usage($error = null) " -h, -? display help/usage (this message)\n". "Commands:\n". " install \n". + " uninstall \n". " package [package info file]\n". " list-installed\n". " list-available\n".