X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole.php;h=9edc12b64c93b690646f75786589f52a16c0e136;hb=5a3991d4f7bc929c1087d9275716fc1c8cc299a6;hp=6201499371f699cdbd0a30ac4725807b80a4e975;hpb=02c9fd6c2452382253e8da4a40fa4a839c69f9d7;p=friendica.git diff --git a/src/Core/Console.php b/src/Core/Console.php index 6201499371..9edc12b64c 100644 --- a/src/Core/Console.php +++ b/src/Core/Console.php @@ -1,129 +1,133 @@ - - */ -class Console extends \Asika\SimpleConsole\Console -{ - // Disables the default help handling - protected $helpOptions = []; - protected $customHelpOptions = ['h', 'help', '?']; - - protected function getHelp() - { - - - $help = << [] [-v] - -Commands: - config Edit site config - createdoxygen Generate Doxygen headers - 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 - help Show help about a command, e.g (bin/console help config) - maintenance Set maintenance mode for this node - 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 - -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); - } - - $subargs = $this->args; - array_unshift($subargs, $this->executable); - - $subconsole = null; - - switch ($command) { - case 'config' : $subconsole = new Console\Config($subargs); - break; - case 'createdoxygen' : $subconsole = new Console\CreateDoxygen($subargs); - break; - case 'docbloxerrorchecker' : $subconsole = new Console\DocBloxErrorChecker($subargs); - break; - case 'extract' : $subconsole = new Console\Extract($subargs); - break; - case 'globalcommunityblock': $subconsole = new Console\GlobalCommunityBlock($subargs); - break; - case 'globalcommunitysilence': $subconsole = new Console\GlobalCommunitySilence($subargs); - break; - case 'maintenance': $subconsole = new Console\Maintenance($subargs); - break; - case 'php2po': $subconsole = new Console\PhpToPo($subargs); - break; - case 'po2php': $subconsole = new Console\PoToPhp($subargs); - break; - case 'typo': $subconsole = new Console\Typo($subargs); - break; - default: - throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist'); - } - - foreach ($this->options as $name => $value) { - $subconsole->setOption($name, $value); - } - - return $subconsole; - } - -} + + */ +class Console extends \Asika\SimpleConsole\Console +{ + // Disables the default help handling + protected $helpOptions = []; + protected $customHelpOptions = ['h', 'help', '?']; + + protected $subConsoles = [ + 'cache' => __NAMESPACE__ . '\Console\Cache', + '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 = << [] [-v] + +Commands: + cache Manage node cache + 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; + } + +}