]> 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 82c485179eb2a0e22b2fefd9c15d3ea0e6d804bd..16fc90c4eb3ebbe91bca2c892bc500c1ac9a928e 100644 (file)
@@ -2,10 +2,13 @@
 
 namespace Friendica\Core;
 
 
 namespace Friendica\Core;
 
+use Dice\Dice;
+use Friendica;
+
 /**
  * Description of Console
  *
 /**
  * Description of Console
  *
- * @author Hypolite Petovan <mrpetovan@gmail.com>
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
 class Console extends \Asika\SimpleConsole\Console
 {
  */
 class Console extends \Asika\SimpleConsole\Console
 {
@@ -13,21 +16,10 @@ class Console extends \Asika\SimpleConsole\Console
        protected $helpOptions = [];
        protected $customHelpOptions = ['h', 'help', '?'];
 
        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',
-               'autoinstall'            => __NAMESPACE__ . '\Console\AutomaticInstallation',
-               'maintenance'            => __NAMESPACE__ . '\Console\Maintenance',
-               'newpassword'            => __NAMESPACE__ . '\Console\NewPassword',
-               'php2po'                 => __NAMESPACE__ . '\Console\PhpToPo',
-               'po2php'                 => __NAMESPACE__ . '\Console\PoToPhp',
-               'typo'                   => __NAMESPACE__ . '\Console\Typo',
-       ];
+       /**
+        * @var Dice The DI library
+        */
+       protected $dice;
 
        protected function getHelp()
        {
 
        protected function getHelp()
        {
@@ -35,6 +27,7 @@ class Console extends \Asika\SimpleConsole\Console
 Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]
 
 Commands:
 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
        config                 Edit site config
        createdoxygen          Generate Doxygen headers
        dbstructure            Do database updates
@@ -42,13 +35,18 @@ Commands:
        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
        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
        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
        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
 
 Options:
        -h|--help|-? Show help information
@@ -57,6 +55,41 @@ HELP;
                return $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')) {
        protected function doExecute()
        {
                if ($this->getOption('v')) {
@@ -65,7 +98,6 @@ HELP;
                        $this->out('Options: ' . var_export($this->options, true));
                }
 
                        $this->out('Options: ' . var_export($this->options, true));
                }
 
-               $showHelp = false;
                $subHelp = false;
                $command = null;
 
                $subHelp = false;
                $command = null;
 
@@ -75,7 +107,6 @@ HELP;
                        return 0;
                } elseif ((count($this->options) === 0 || $this->getOption($this->customHelpOptions) === true || $this->getOption($this->customHelpOptions) === 1) && count($this->args) === 0
                ) {
                        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;
                } elseif (count($this->args) >= 2 && $this->getArgument(0) == 'help') {
                        $command = $this->getArgument(1);
                        $subHelp = true;
@@ -115,7 +146,10 @@ HELP;
 
                $className = $this->subConsoles[$command];
 
 
                $className = $this->subConsoles[$command];
 
-               $subconsole = new $className($subargs);
+               Friendica\DI::init($this->dice);
+
+               /** @var Console $subconsole */
+               $subconsole = $this->dice->create($className, [$subargs]);
 
                foreach ($this->options as $name => $value) {
                        $subconsole->setOption($name, $value);
 
                foreach ($this->options as $name => $value) {
                        $subconsole->setOption($name, $value);