]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Console.php
Merge pull request #9882 from MrPetovan/bug/po2php-plural-conversion
[friendica.git] / src / Core / Console.php
index c60f36296a56010c2d2be0c4d2c87187654639d3..f43b89e9e67cc1832090d00ad10598a6b40e5bcf 100644 (file)
@@ -1,11 +1,31 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Core;
 
+use Dice\Dice;
+use Friendica;
+
 /**
  * Description of Console
- *
- * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
 class Console extends \Asika\SimpleConsole\Console
 {
@@ -13,25 +33,10 @@ class Console extends \Asika\SimpleConsole\Console
        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',
-               'storage'                => __NAMESPACE__ . '\Console\Storage',
-       ];
+       /**
+        * @var Dice The DI library
+        */
+       protected $dice;
 
        protected function getHelp()
        {
@@ -46,17 +51,20 @@ Commands:
        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
+       globalcommunitysilence Silence a profile from the 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
+       user                   User management
        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
+       relay                  Manage ActivityPub relay servers
 
 Options:
        -h|--help|-? Show help information
@@ -65,6 +73,43 @@ 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,
+               'user'                   => Friendica\Console\User::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,
+               'relay'                  => Friendica\Console\Relay::class,
+               'fixapdeliveryworkertaskparameters' => Friendica\Console\FixAPDeliveryWorkerTaskParameters::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')) {
@@ -121,8 +166,10 @@ HELP;
 
                $className = $this->subConsoles[$command];
 
+               Friendica\DI::init($this->dice);
+
                /** @var Console $subconsole */
-               $subconsole = new $className($subargs);
+               $subconsole = $this->dice->create($className, [$subargs]);
 
                foreach ($this->options as $name => $value) {
                        $subconsole->setOption($name, $value);