3 namespace Friendica\Core;
\r
6 * Description of Console
\r
8 * @author Hypolite Petovan <mrpetovan@gmail.com>
\r
10 class Console extends \Asika\SimpleConsole\Console
\r
12 // Disables the default help handling
\r
13 protected $helpOptions = [];
\r
14 protected $customHelpOptions = ['h', 'help', '?'];
\r
16 protected function getHelp()
\r
21 Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]
\r
24 config Edit site config
\r
25 createdoxygen Generate Doxygen headers
\r
26 docbloxerrorchecker Check the file tree for DocBlox errors
\r
27 extract Generate translation string file for the Friendica project (deprecated)
\r
28 globalcommunityblock Block remote profile from interacting with this node
\r
29 globalcommunitysilence Silence remote profile from global community page
\r
30 help Show help about a command, e.g (bin/console help config)
\r
31 maintenance Set maintenance mode for this node
\r
32 php2po Generate a messages.po file from a strings.php file
\r
33 po2php Generate a strings.php file from a messages.po file
\r
34 typo Checks for parse errors in Friendica files
\r
37 -h|--help|-? Show help information
\r
38 -v Show more debug information.
\r
43 protected function doExecute()
\r
45 if ($this->getOption('v')) {
\r
46 $this->out('Executable: ' . $this->executable);
\r
47 $this->out('Arguments: ' . var_export($this->args, true));
\r
48 $this->out('Options: ' . var_export($this->options, true));
\r
55 if ($this->getOption('version')) {
\r
56 $this->out('Friendica Console version ' . FRIENDICA_VERSION);
\r
59 } elseif ((count($this->options) === 0 || $this->getOption($this->customHelpOptions) === true || $this->getOption($this->customHelpOptions) === 1) && count($this->args) === 0
\r
62 } elseif (count($this->args) >= 2 && $this->getArgument(0) == 'help') {
\r
63 $command = $this->getArgument(1);
\r
65 array_shift($this->args);
\r
66 array_shift($this->args);
\r
67 } elseif (count($this->args) >= 1) {
\r
68 $command = $this->getArgument(0);
\r
69 array_shift($this->args);
\r
72 if (is_null($command)) {
\r
73 $this->out($this->getHelp());
\r
77 $console = $this->getSubConsole($command);
\r
80 $console->setOption($this->customHelpOptions, true);
\r
83 return $console->execute();
\r
86 private function getSubConsole($command)
\r
88 if ($this->getOption('v')) {
\r
89 $this->out('Command: ' . $command);
\r
92 $subargs = $this->args;
\r
93 array_unshift($subargs, $this->executable);
\r
98 case 'config' : $subconsole = new Console\Config($subargs);
\r
100 case 'createdoxygen' : $subconsole = new Console\CreateDoxygen($subargs);
\r
102 case 'docbloxerrorchecker' : $subconsole = new Console\DocBloxErrorChecker($subargs);
\r
104 case 'extract' : $subconsole = new Console\Extract($subargs);
\r
106 case 'globalcommunityblock': $subconsole = new Console\GlobalCommunityBlock($subargs);
\r
108 case 'globalcommunitysilence': $subconsole = new Console\GlobalCommunitySilence($subargs);
\r
110 case 'maintenance': $subconsole = new Console\Maintenance($subargs);
\r
112 case 'php2po': $subconsole = new Console\PhpToPo($subargs);
\r
114 case 'po2php': $subconsole = new Console\PoToPhp($subargs);
\r
116 case 'typo': $subconsole = new Console\Typo($subargs);
\r
119 throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist');
\r
122 foreach ($this->options as $name => $value) {
\r
123 $subconsole->setOption($name, $value);
\r
126 return $subconsole;
\r