]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Console.php
Merge branch 'master' into develop
[friendica.git] / src / Core / Console.php
index 6f4ec64a0858b8494fb28793ce64b25460f56321..63aca9301c5b5fbc61ad603b43e7949c55c21add 100644 (file)
@@ -13,16 +13,29 @@ class Console extends \Asika\SimpleConsole\Console
        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
@@ -31,6 +44,7 @@ Commands:
        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
@@ -88,35 +102,16 @@ HELP;
                        $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
-                       case 'typo': $subconsole = new Console\Typo($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