-<?php\r
-\r
-namespace Friendica\Core;\r
-\r
-/**\r
- * Description of Console\r
- *\r
- * @author Hypolite Petovan <mrpetovan@gmail.com>\r
- */\r
-class Console extends \Asika\SimpleConsole\Console\r
-{\r
- // Disables the default help handling\r
- protected $helpOptions = [];\r
- protected $customHelpOptions = ['h', 'help', '?'];\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
- 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
- globalcommunitysilence Silence remote profile from global community page\r
- help Show help about a command, e.g (bin/console help config)\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
-\r
-Options:\r
- -h|--help|-? Show help information\r
- -v Show more debug information.\r
-HELP;\r
- return $help;\r
- }\r
-\r
- protected function doExecute()\r
- {\r
- if ($this->getOption('v')) {\r
- $this->out('Executable: ' . $this->executable);\r
- $this->out('Arguments: ' . var_export($this->args, true));\r
- $this->out('Options: ' . var_export($this->options, true));\r
- }\r
-\r
- $showHelp = false;\r
- $subHelp = false;\r
- $command = null;\r
-\r
- if ($this->getOption('version')) {\r
- $this->out('Friendica Console version ' . FRIENDICA_VERSION);\r
-\r
- return 0;\r
- } elseif ((count($this->options) === 0 || $this->getOption($this->customHelpOptions) === true || $this->getOption($this->customHelpOptions) === 1) && count($this->args) === 0\r
- ) {\r
- $showHelp = true;\r
- } elseif (count($this->args) >= 2 && $this->getArgument(0) == 'help') {\r
- $command = $this->getArgument(1);\r
- $subHelp = true;\r
- array_shift($this->args);\r
- array_shift($this->args);\r
- } elseif (count($this->args) >= 1) {\r
- $command = $this->getArgument(0);\r
- array_shift($this->args);\r
- }\r
-\r
- if (is_null($command)) {\r
- $this->out($this->getHelp());\r
- return 0;\r
- }\r
-\r
- $console = $this->getSubConsole($command);\r
-\r
- if ($subHelp) {\r
- $console->setOption($this->customHelpOptions, true);\r
- }\r
-\r
- return $console->execute();\r
- }\r
-\r
- private function getSubConsole($command)\r
- {\r
- if ($this->getOption('v')) {\r
- $this->out('Command: ' . $command);\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
-\r
- foreach ($this->options as $name => $value) {\r
- $subconsole->setOption($name, $value);\r
- }\r
-\r
- return $subconsole;\r
- }\r
-\r
-}\r
+<?php
+
+namespace Friendica\Core;
+
+/**
+ * Description of Console
+ *
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
+ */
+class Console extends \Asika\SimpleConsole\Console
+{
+ // Disables the default help handling
+ protected $helpOptions = [];
+ protected $customHelpOptions = ['h', 'help', '?'];
+
+ protected $subConsoles = [
+ 'config' => __NAMESPACE__ . '\Console\Config',
+ 'createdoxygen' => __NAMESPACE__ . '\Console\CreateDoxygen',
+ 'docbloxerrorchecker' => __NAMESPACE__ . '\Console\DocBloxErrorChecker',
+ 'dbstructure' => __NAMESPACE__ . '\Console\DatabaseStructure',
+ 'extract' => __NAMESPACE__ . '\Console\Extract',
+ 'globalcommunityblock' => __NAMESPACE__ . '\Console\GlobalCommunityBlock',
+ 'globalcommunitysilence' => __NAMESPACE__ . '\Console\GlobalCommunitySilence',
+ 'archivecontact' => __NAMESPACE__ . '\Console\ArchiveContact',
+ 'autoinstall' => __NAMESPACE__ . '\Console\AutomaticInstallation',
+ 'maintenance' => __NAMESPACE__ . '\Console\Maintenance',
+ 'newpassword' => __NAMESPACE__ . '\Console\NewPassword',
+ 'php2po' => __NAMESPACE__ . '\Console\PhpToPo',
+ 'po2php' => __NAMESPACE__ . '\Console\PoToPhp',
+ 'typo' => __NAMESPACE__ . '\Console\Typo',
+ 'postupdate' => __NAMESPACE__ . '\Console\PostUpdate',
+ ];
+
+ protected function getHelp()
+ {
+ $help = <<<HELP
+Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]
+
+Commands:
+ config Edit site config
+ createdoxygen Generate Doxygen headers
+ dbstructure Do database updates
+ docbloxerrorchecker Check the file tree for DocBlox errors
+ extract Generate translation string file for the Friendica project (deprecated)
+ globalcommunityblock Block remote profile from interacting with this node
+ globalcommunitysilence Silence remote profile from global community page
+ archivecontact Archive a contact when you know that it isn't existing anymore
+ help Show help about a command, e.g (bin/console help config)
+ autoinstall Starts automatic installation of friendica based on values from htconfig.php
+ maintenance Set maintenance mode for this node
+ newpassword Set a new password for a given user
+ php2po Generate a messages.po file from a strings.php file
+ po2php Generate a strings.php file from a messages.po file
+ typo Checks for parse errors in Friendica files
+ postupdate Execute pending post update scripts (can last days)
+
+Options:
+ -h|--help|-? Show help information
+ -v Show more debug information.
+HELP;
+ return $help;
+ }
+
+ protected function doExecute()
+ {
+ if ($this->getOption('v')) {
+ $this->out('Executable: ' . $this->executable);
+ $this->out('Arguments: ' . var_export($this->args, true));
+ $this->out('Options: ' . var_export($this->options, true));
+ }
+
+ $showHelp = false;
+ $subHelp = false;
+ $command = null;
+
+ if ($this->getOption('version')) {
+ $this->out('Friendica Console version ' . FRIENDICA_VERSION);
+
+ return 0;
+ } elseif ((count($this->options) === 0 || $this->getOption($this->customHelpOptions) === true || $this->getOption($this->customHelpOptions) === 1) && count($this->args) === 0
+ ) {
+ $showHelp = true;
+ } elseif (count($this->args) >= 2 && $this->getArgument(0) == 'help') {
+ $command = $this->getArgument(1);
+ $subHelp = true;
+ array_shift($this->args);
+ array_shift($this->args);
+ } elseif (count($this->args) >= 1) {
+ $command = $this->getArgument(0);
+ array_shift($this->args);
+ }
+
+ if (is_null($command)) {
+ $this->out($this->getHelp());
+ return 0;
+ }
+
+ $console = $this->getSubConsole($command);
+
+ if ($subHelp) {
+ $console->setOption($this->customHelpOptions, true);
+ }
+
+ return $console->execute();
+ }
+
+ private function getSubConsole($command)
+ {
+ if ($this->getOption('v')) {
+ $this->out('Command: ' . $command);
+ }
+
+ if (!isset($this->subConsoles[$command])) {
+ throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist');
+ }
+
+ $subargs = $this->args;
+ array_unshift($subargs, $this->executable);
+
+ $className = $this->subConsoles[$command];
+
+ $subconsole = new $className($subargs);
+
+ foreach ($this->options as $name => $value) {
+ $subconsole->setOption($name, $value);
+ }
+
+ return $subconsole;
+ }
+
+}