diff options
| author | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2024-03-26 21:11:58 +0000 |
|---|---|---|
| committer | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2024-03-26 21:11:58 +0000 |
| commit | a4907198eb0edd9726f585b3d0f3b301f9a1d5ab (patch) | |
| tree | ff6754d49d12a642cc2ae864447fe8b9ac53341c /cli | |
| parent | 8e82625c46852a81275fa8485995efca760b1abf (diff) | |
Add REPL cli script.
Closes #3897
Merge request studip/studip!2756
Diffstat (limited to 'cli')
| -rw-r--r-- | cli/Commands/Base/Tinker.php | 40 | ||||
| -rwxr-xr-x | cli/studip | 13 |
2 files changed, 47 insertions, 6 deletions
diff --git a/cli/Commands/Base/Tinker.php b/cli/Commands/Base/Tinker.php new file mode 100644 index 0000000..1bc4f12 --- /dev/null +++ b/cli/Commands/Base/Tinker.php @@ -0,0 +1,40 @@ +<?php + +namespace Studip\Cli\Commands\Base; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; +use Symfony\Component\Process\PhpExecutableFinder; +use Symfony\Component\Process\Process; +use Psy\Configuration; +use Psy\Shell; +use Psy\VersionUpdater\Checker; + +class Tinker extends Command +{ + protected static $defaultName = 'tinker'; + + protected function configure(): void + { + $this->setDescription('Interact with your Stud.IP in a read-eval-print loop (REPL).'); + } + + /** + * @SuppressWarnings(PHPMD.StaticAccess) + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + protected function execute(InputInterface $input, OutputInterface $output): int + { + $config = Configuration::fromInput($input); + $config->setUpdateCheck(Checker::NEVER); + $config->setDefaultIncludes([__DIR__ . '/../../studip_cli_env.inc.php']); + + $shell = new Shell($config); + + return $shell->run(); + } +} @@ -13,6 +13,7 @@ require __DIR__.'/../composer/autoload.php'; $application = new Application(); $commands = [ Commands\Base\Dump::class, + Commands\Base\Tinker::class, Commands\Checks\Compatibility::class, Commands\Checks\GlobalizedConfig::class, Commands\Checks\HelpTours::class, @@ -38,29 +39,29 @@ $commands = [ Commands\Fix\Biest8136::class, Commands\Fix\IconDimensions::class, Commands\HelpContent\Migrate::class, + Commands\Migrate\Migrate::class, Commands\Migrate\MigrateList::class, Commands\Migrate\MigrateStatus::class, - Commands\Migrate\Migrate::class, Commands\OAuth2\Keys::class, Commands\OAuth2\Purge::class, + Commands\Plugins\I18N\I18NCompile::class, + Commands\Plugins\I18N\I18NDetect::class, + Commands\Plugins\I18N\I18NExtract::class, Commands\Plugins\PluginActivate::class, Commands\Plugins\PluginDeactivate::class, Commands\Plugins\PluginInfo::class, Commands\Plugins\PluginInstall::class, Commands\Plugins\PluginListMigrations::class, - Commands\Plugins\PluginStatusMigrations::class, Commands\Plugins\PluginMigrate::class, Commands\Plugins\PluginRegister::class, Commands\Plugins\PluginScan::class, + Commands\Plugins\PluginStatusMigrations::class, Commands\Plugins\PluginUnregister::class, - Commands\Plugins\I18N\I18NDetect::class, - Commands\Plugins\I18N\I18NExtract::class, - Commands\Plugins\I18N\I18NCompile::class, Commands\Resources\UpdateBookingIntervals::class, Commands\SORM\DescribeModels::class, Commands\Twillo\PrivateKeys::class, - Commands\User\UsersDelete::class, Commands\User\GetUser::class, + Commands\User\UsersDelete::class, ]; $creator = function ($command) { return app($command); |
