protected $helpOptions = [];\r
protected $customHelpOptions = ['h', 'help', '?'];\r
\r
+ protected $subConsoles = [\r
+ 'config' => __NAMESPACE__ . '\Console\Config',\r
+ 'createdoxygen' => __NAMESPACE__ . '\Console\CreateDoxygen',\r
+ 'docbloxerrorchecker' => __NAMESPACE__ . '\Console\DocBloxErrorChecker',\r
+ 'dbstructure' => __NAMESPACE__ . '\Console\DatabaseStructure',\r
+ 'extract' => __NAMESPACE__ . '\Console\Extract',\r
+ 'globalcommunityblock' => __NAMESPACE__ . '\Console\GlobalCommunityBlock',\r
+ 'globalcommunitysilence' => __NAMESPACE__ . '\Console\GlobalCommunitySilence',\r
+ 'maintenance' => __NAMESPACE__ . '\Console\Maintenance',\r
+ 'php2po' => __NAMESPACE__ . '\Console\PhpToPo',\r
+ 'po2php' => __NAMESPACE__ . '\Console\PoToPhp',\r
+ 'typo' => __NAMESPACE__ . '\Console\Typo',\r
+ ];\r
+\r
protected function getHelp()\r
{\r
-\r
-\r
$help = <<<HELP\r
Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]\r
\r
Commands:\r
config Edit site config\r
createdoxygen Generate Doxygen headers\r
+ dbstructure Do database updates\r
docbloxerrorchecker Check the file tree for DocBlox errors\r
extract Generate translation string file for the Friendica project (deprecated)\r
globalcommunityblock Block remote profile from interacting with this node\r
maintenance Set maintenance mode for this node\r
php2po Generate a messages.po file from a strings.php file\r
po2php Generate a strings.php file from a messages.po file\r
+ typo Checks for parse errors in Friendica files\r
\r
Options:\r
-h|--help|-? Show help information\r
$this->out('Command: ' . $command);\r
}\r
\r
+ if (!isset($this->subConsoles[$command])) {\r
+ throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist');\r
+ }\r
+\r
$subargs = $this->args;\r
array_unshift($subargs, $this->executable);\r
\r
- $subconsole = null;\r
-\r
- switch ($command) {\r
- case 'config' : $subconsole = new Console\Config($subargs);\r
- break;\r
- case 'createdoxygen' : $subconsole = new Console\CreateDoxygen($subargs);\r
- break;\r
- case 'docbloxerrorchecker' : $subconsole = new Console\DocBloxErrorChecker($subargs);\r
- break;\r
- case 'extract' : $subconsole = new Console\Extract($subargs);\r
- break;\r
- case 'globalcommunityblock': $subconsole = new Console\GlobalCommunityBlock($subargs);\r
- break;\r
- case 'globalcommunitysilence': $subconsole = new Console\GlobalCommunitySilence($subargs);\r
- break;\r
- case 'maintenance': $subconsole = new Console\Maintenance($subargs);\r
- break;\r
- case 'php2po': $subconsole = new Console\PhpToPo($subargs);\r
- break;\r
- case 'po2php': $subconsole = new Console\PoToPhp($subargs);\r
- break;\r
- default:\r
- throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist');\r
- }\r
+ $className = $this->subConsoles[$command];\r
+\r
+ $subconsole = new $className($subargs);\r
\r
foreach ($this->options as $name => $value) {\r
$subconsole->setOption($name, $value);\r