summaryrefslogtreecommitdiffstats
path: root/inc/PEAR/Command/Mirror.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/PEAR/Command/Mirror.php')
-rwxr-xr-xinc/PEAR/Command/Mirror.php101
1 files changed, 101 insertions, 0 deletions
diff --git a/inc/PEAR/Command/Mirror.php b/inc/PEAR/Command/Mirror.php
new file mode 100755
index 00000000000..bf56c3db640
--- /dev/null
+++ b/inc/PEAR/Command/Mirror.php
@@ -0,0 +1,101 @@
+<?php
+//
+// +----------------------------------------------------------------------+
+// | PHP Version 5 |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2004 The PHP Group |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 3.0 of the PHP license, |
+// | that is bundled with this package in the file LICENSE, and is |
+// | available through the world-wide-web at the following url: |
+// | http://www.php.net/license/3_0.txt. |
+// | If you did not receive a copy of the PHP license and are unable to |
+// | obtain it through the world-wide-web, please send a note to |
+// | license@php.net so we can mail you a copy immediately. |
+// +----------------------------------------------------------------------+
+// | Author: Alexander Merz <alexmerz@php.net> |
+// | |
+// +----------------------------------------------------------------------+
+//
+// $Id: Mirror.php,v 1.5 2004/03/18 12:23:57 mj Exp $
+
+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 available package from master_server',
+ 'function' => 'doDownloadAll',
+ 'shortcut' => 'da',
+ 'options' => array(),
+ 'doc' => '
+ Requests a list of available packages from the package server
+ (master_server) and downloads them to current working directory'
+ ),
+ );
+
+ // }}}
+
+ // {{{ 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;
+ }
+
+ // }}}
+}