]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Console.php
Add user contact data superseding to Mastodon\Account::create
[friendica.git] / src / Core / Console.php
index 63aca9301c5b5fbc61ad603b43e7949c55c21add..16fc90c4eb3ebbe91bca2c892bc500c1ac9a928e 100644 (file)
-<?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 $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
-               $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
-       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
-       typo                   Checks for parse errors in Friendica files\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
-               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
-               $className = $this->subConsoles[$command];\r
-\r
-               $subconsole = new $className($subargs);\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;
+
+use Dice\Dice;
+use Friendica;
+
+/**
+ * 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', '?'];
+
+       /**
+        * @var Dice The DI library
+        */
+       protected $dice;
+
+       protected function getHelp()
+       {
+               $help = <<<HELP
+Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-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
+       lock                   Edit site locks
+       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)
+       serverblock            Manage blocked servers
+       storage                Manage storage backend
+
+Options:
+       -h|--help|-? Show help information
+       -v           Show more debug information.
+HELP;
+               return $help;
+       }
+
+       protected $subConsoles = [
+               'cache'                  => Friendica\Console\Cache::class,
+               'config'                 => Friendica\Console\Config::class,
+               'createdoxygen'          => Friendica\Console\CreateDoxygen::class,
+               'docbloxerrorchecker'    => Friendica\Console\DocBloxErrorChecker::class,
+               'dbstructure'            => Friendica\Console\DatabaseStructure::class,
+               'extract'                => Friendica\Console\Extract::class,
+               'globalcommunityblock'   => Friendica\Console\GlobalCommunityBlock::class,
+               'globalcommunitysilence' => Friendica\Console\GlobalCommunitySilence::class,
+               'archivecontact'         => Friendica\Console\ArchiveContact::class,
+               'autoinstall'            => Friendica\Console\AutomaticInstallation::class,
+               'lock'                   => Friendica\Console\Lock::class,
+               'maintenance'            => Friendica\Console\Maintenance::class,
+               'newpassword'            => Friendica\Console\NewPassword::class,
+               'php2po'                 => Friendica\Console\PhpToPo::class,
+               'po2php'                 => Friendica\Console\PoToPhp::class,
+               'typo'                   => Friendica\Console\Typo::class,
+               'postupdate'             => Friendica\Console\PostUpdate::class,
+               'serverblock'            => Friendica\Console\ServerBlock::class,
+               'storage'                => Friendica\Console\Storage::class,
+       ];
+
+       /**
+        * CliInput Friendica constructor.
+        *
+        * @param Dice $dice The DI library
+        * @param array $argv
+        */
+       public function __construct(Dice $dice, array $argv = null)
+       {
+               parent::__construct($argv);
+
+               $this->dice = $dice;
+       }
+
+       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));
+               }
+
+               $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
+               ) {
+               } 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];
+
+               Friendica\DI::init($this->dice);
+
+               /** @var Console $subconsole */
+               $subconsole = $this->dice->create($className, [$subargs]);
+
+               foreach ($this->options as $name => $value) {
+                       $subconsole->setOption($name, $value);
+               }
+
+               return $subconsole;
+       }
+
+}