summaryrefslogtreecommitdiff
path: root/framework/console/CHelpCommand.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/console/CHelpCommand.php')
-rw-r--r--framework/console/CHelpCommand.php75
1 files changed, 75 insertions, 0 deletions
diff --git a/framework/console/CHelpCommand.php b/framework/console/CHelpCommand.php
new file mode 100644
index 0000000..0d45419
--- /dev/null
+++ b/framework/console/CHelpCommand.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * CHelpCommand class file.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @link http://www.yiiframework.com/
+ * @copyright Copyright &copy; 2008-2011 Yii Software LLC
+ * @license http://www.yiiframework.com/license/
+ */
+
+/**
+ * CHelpCommand represents a console help command.
+ *
+ * CHelpCommand displays the available command list or the help instructions
+ * about a specific command.
+ *
+ * To use this command, enter the following on the command line:
+ * <pre>
+ * php path/to/entry_script.php help [command name]
+ * </pre>
+ * In the above, if the command name is not provided, it will display all
+ * available commands.
+ *
+ * @property string $help The command description.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @version $Id: CHelpCommand.php 3426 2011-10-25 00:01:09Z alexander.makarow $
+ * @package system.console
+ * @since 1.0
+ */
+class CHelpCommand extends CConsoleCommand
+{
+ /**
+ * Execute the action.
+ * @param array $args command line parameters specific for this command
+ */
+ public function run($args)
+ {
+ $runner=$this->getCommandRunner();
+ $commands=$runner->commands;
+ if(isset($args[0]))
+ $name=strtolower($args[0]);
+ if(!isset($args[0]) || !isset($commands[$name]))
+ {
+ if(!empty($commands))
+ {
+ echo "Yii command runner (based on Yii v".Yii::getVersion().")\n";
+ echo "Usage: ".$runner->getScriptName()." <command-name> [parameters...]\n";
+ echo "\nThe following commands are available:\n";
+ $commandNames=array_keys($commands);
+ sort($commandNames);
+ echo ' - '.implode("\n - ",$commandNames);
+ echo "\n\nTo see individual command help, use the following:\n";
+ echo " ".$runner->getScriptName()." help <command-name>\n";
+ }
+ else
+ {
+ echo "No available commands.\n";
+ echo "Please define them under the following directory:\n";
+ echo "\t".Yii::app()->getCommandPath()."\n";
+ }
+ }
+ else
+ echo $runner->createCommand($name)->getHelp();
+ }
+
+ /**
+ * Provides the command description.
+ * @return string the command description.
+ */
+ public function getHelp()
+ {
+ return parent::getHelp().' [command-name]';
+ }
+} \ No newline at end of file