From d276e85167f912cd4f122dc12e433d2473c0d306 Mon Sep 17 00:00:00 2001 From: Alexander Merz Date: Mon, 5 May 2003 07:07:51 +0000 Subject: [PATCH] introduce download-all command for the PEAR Installer --- pear/PEAR/Command/Mirror.php | 99 ++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 pear/PEAR/Command/Mirror.php diff --git a/pear/PEAR/Command/Mirror.php b/pear/PEAR/Command/Mirror.php new file mode 100644 index 0000000000..ed61f57e17 --- /dev/null +++ b/pear/PEAR/Command/Mirror.php @@ -0,0 +1,99 @@ + | +// | | +// +----------------------------------------------------------------------+ +// +// $Id$ + +require_once "PEAR/Command/Common.php"; +require_once "PEAR/Command.php"; +require_once "PEAR/Remote.php"; +require_once "PEAR.php"; + +/** + * PEAR commands for providing file mirrors + * + */ +class PEAR_Command_Mirror extends PEAR_Command_Common +{ + // {{{ properties + + var $commands = array( + 'download-all' => array( + 'summary' => 'Downloads each avaible Package from master_server', + 'function' => 'doDownloadAll', + 'shortcut' => 'da', + 'options' => array(), + 'doc' => ' + Request a list of avaible Packages from the Package-Server + (master_server) and downloads them to current working dir' + ), + ); + + // }}} + + // {{{ constructor + + /** + * PEAR_Command_Mirror constructor. + * + * @access public + * @param object PEAR_Frontend a reference to an frontend + * @param object PEAR_Config a reference to the configuration data + */ + function PEAR_Command_Mirror(&$ui, &$config) + { + parent::PEAR_Command_Common($ui, $config); + } + + // }}} + + // {{{ doDownloadAll() + /** + * retrieves a list of avaible Packages from master server + * and downloads them + * + * @access public + * @param string $command the command + * @param array $options the command options before the command + * @param array $params the stuff after the command name + * @return bool true if succesful + * @throw PEAR_Error + */ + function doDownloadAll($command, $options, $params) + { + $this->config->set("php_dir", "."); + $remote = &new PEAR_Remote($this->config); + $remoteInfo = $remote->call("package.listAll"); + if(PEAR::isError($remoteInfo)) { + return $remoteInfo; + } + $cmd = &PEAR_Command::factory("download", $this->config); + if(PEAR::isError($cmd)) { + return $cmd; + } + foreach($remoteInfo as $pkgn=>$pkg) { + // error handling not neccesary, because + // already done by the download command + $cmd->run("download", array(), array($pkgn)); + } + + return true; + } + + // }}} +} -- 2.40.0