X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConsole.php;h=f43b89e9e67cc1832090d00ad10598a6b40e5bcf;hb=5b13de8e7f9380f5fc2e9fad609d381660c1a6cb;hp=9edc12b64c93b690646f75786589f52a16c0e136;hpb=8821d33f73785884cfce83e7b23d3ef19cc1bc11;p=friendica.git diff --git a/src/Core/Console.php b/src/Core/Console.php index 9edc12b64c..f43b89e9e6 100644 --- a/src/Core/Console.php +++ b/src/Core/Console.php @@ -1,11 +1,31 @@ . + * + */ namespace Friendica\Core; +use Dice\Dice; +use Friendica; + /** * Description of Console - * - * @author Hypolite Petovan */ class Console extends \Asika\SimpleConsole\Console { @@ -13,24 +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', - ]; + /** + * @var Dice The DI library + */ + protected $dice; protected function getHelp() { @@ -45,16 +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 @@ -63,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')) { @@ -71,7 +118,6 @@ HELP; $this->out('Options: ' . var_export($this->options, true)); } - $showHelp = false; $subHelp = false; $command = null; @@ -81,7 +127,6 @@ HELP; 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; @@ -121,7 +166,10 @@ HELP; $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);