Also always return in app commands

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2020-06-26 15:12:11 +02:00
parent ab21d69903
commit d7c0b9cced
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
42 changed files with 102 additions and 57 deletions

View File

@ -64,7 +64,7 @@ class CreateAddressBook extends Command {
'Name of the addressbook');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('user');
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> in unknown.");
@ -72,5 +72,6 @@ class CreateAddressBook extends Command {
$name = $input->getArgument('name');
$this->cardDavBackend->createAddressBook("principals/users/$user", $name, []);
return 0;
}
}

View File

@ -73,7 +73,7 @@ class CreateCalendar extends Command {
'Name of the calendar');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('user');
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> in unknown.");
@ -94,5 +94,6 @@ class CreateCalendar extends Command {
$name = $input->getArgument('name');
$caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager, $this->groupManager, $random, $logger, $dispatcher);
$caldav->createCalendar("principals/users/$user", $name, []);
return 0;
}
}

View File

@ -62,7 +62,7 @@ class ListCalendars extends Command {
'User for whom all calendars will be listed');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getArgument('uid');
if (!$this->userManager->userExists($user)) {
throw new \InvalidArgumentException("User <$user> is unknown.");
@ -101,5 +101,6 @@ class ListCalendars extends Command {
} else {
$output->writeln("<info>User <$user> has no calendars</info>");
}
return 0;
}
}

View File

@ -106,7 +106,7 @@ class MoveCalendar extends Command {
->addOption('force', 'f', InputOption::VALUE_NONE, "Force the migration by removing existing shares");
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$userOrigin = $input->getArgument('sourceuid');
$userDestination = $input->getArgument('destinationuid');
@ -137,6 +137,7 @@ class MoveCalendar extends Command {
$this->calDav->moveCalendar($name, self::URI_USERS . $userOrigin, self::URI_USERS . $userDestination);
$this->io->success("Calendar <$name> was moved from user <$userOrigin> to <$userDestination>");
return 0;
}
/**

View File

@ -57,7 +57,7 @@ class RemoveInvalidShares extends Command {
->setDescription('Remove invalid dav shares');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$query = $this->connection->getQueryBuilder();
$result = $query->selectDistinct('principaluri')
->from('dav_shares')
@ -72,6 +72,7 @@ class RemoveInvalidShares extends Command {
}
$result->closeCursor();
return 0;
}
/**

View File

@ -67,19 +67,20 @@ class SendEventReminders extends Command {
* @param InputInterface $input
* @param OutputInterface $output
*/
protected function execute(InputInterface $input, OutputInterface $output):void {
protected function execute(InputInterface $input, OutputInterface $output): int {
if ($this->config->getAppValue('dav', 'sendEventReminders', 'yes') !== 'yes') {
$output->writeln('<error>Sending event reminders disabled!</error>');
$output->writeln('<info>Please run "php occ config:app:set dav sendEventReminders --value yes"');
return;
return 1;
}
if ($this->config->getAppValue('dav', 'sendEventRemindersMode', 'backgroundjob') !== 'occ') {
$output->writeln('<error>Sending event reminders mode set to background-job!</error>');
$output->writeln('<info>Please run "php occ config:app:set dav sendEventRemindersMode --value occ"');
return;
return 1;
}
$this->reminderService->processReminders();
return 0;
}
}

View File

@ -73,7 +73,7 @@ class SyncBirthdayCalendar extends Command {
* @param InputInterface $input
* @param OutputInterface $output
*/
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$this->verifyEnabled();
$user = $input->getArgument('user');
@ -91,7 +91,7 @@ class SyncBirthdayCalendar extends Command {
$output->writeln("Start birthday calendar sync for $user");
$this->birthdayService->syncUser($user);
return;
return 0;
}
$output->writeln("Start birthday calendar sync for all users ...");
$p = new ProgressBar($output);
@ -111,6 +111,7 @@ class SyncBirthdayCalendar extends Command {
$p->finish();
$output->writeln('');
return 0;
}
protected function verifyEnabled() {

View File

@ -53,7 +53,7 @@ class SyncSystemAddressBook extends Command {
* @param InputInterface $input
* @param OutputInterface $output
*/
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$output->writeln('Syncing users ...');
$progress = new ProgressBar($output);
$progress->start();
@ -63,5 +63,6 @@ class SyncSystemAddressBook extends Command {
$progress->finish();
$output->writeln('');
return 0;
}
}

View File

@ -63,7 +63,7 @@ class DisableMasterKey extends Command {
->setDescription('Disable the master key and use per-user keys instead. Only available for fresh installations with no existing encrypted data! There is no way to enable it again.');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$isMasterKeyEnabled = $this->util->isMasterKeyEnabled();
if (!$isMasterKeyEnabled) {
@ -80,7 +80,9 @@ class DisableMasterKey extends Command {
$output->writeln('Master key successfully disabled.');
} else {
$output->writeln('aborted.');
return 1;
}
}
return 0;
}
}

View File

@ -62,7 +62,7 @@ class EnableMasterKey extends Command {
->setDescription('Enable the master key. Only available for fresh installations with no existing encrypted data! There is also no way to disable it again.');
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$isAlreadyEnabled = $this->util->isMasterKeyEnabled();
if ($isAlreadyEnabled) {
@ -76,7 +76,9 @@ class EnableMasterKey extends Command {
$output->writeln('Master key successfully enabled.');
} else {
$output->writeln('aborted.');
return 1;
}
}
return 0;
}
}

View File

@ -73,25 +73,25 @@ class RecoverUser extends Command {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$isMasterKeyEnabled = $this->util->isMasterKeyEnabled();
if ($isMasterKeyEnabled) {
$output->writeln('You use the master key, no individual user recovery needed.');
return;
return 0;
}
$uid = $input->getArgument('user');
$userExists = $this->userManager->userExists($uid);
if ($userExists === false) {
$output->writeln('User "' . $uid . '" unknown.');
return;
return 1;
}
$recoveryKeyEnabled = $this->util->isRecoveryEnabledForUser($uid);
if ($recoveryKeyEnabled === false) {
$output->writeln('Recovery key is not enabled for: ' . $uid);
return;
return 1;
}
$question = new Question('Please enter the recovery key password: ');
@ -107,5 +107,6 @@ class RecoverUser extends Command {
$output->write('Start to recover users files... This can take some time...');
$this->userManager->get($uid)->setPassword($newLoginPassword, $recoveryPassword);
$output->writeln('Done.');
return 0;
}
}

View File

@ -56,7 +56,7 @@ class SyncFederationAddressBooks extends Command {
* @param OutputInterface $output
* @return int
*/
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$progress = new ProgressBar($output);
$progress->start();
$this->syncService->syncThemAll(function ($url, $ex) use ($progress, $output) {

View File

@ -51,7 +51,7 @@ class DeleteOrphanedFiles extends Command {
->setDescription('cleanup filecache');
}
public function execute(InputInterface $input, OutputInterface $output) {
public function execute(InputInterface $input, OutputInterface $output): int {
$deletedEntries = 0;
$query = $this->connection->getQueryBuilder();
@ -78,5 +78,6 @@ class DeleteOrphanedFiles extends Command {
}
$output->writeln("$deletedEntries orphaned file cache entries deleted");
return 0;
}
}

View File

@ -169,7 +169,7 @@ class Scan extends Base {
return substr_count($mountPoint->getMountPoint(), '/') <= 3;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$inputPath = $input->getOption('path');
if ($inputPath) {
$inputPath = '/' . trim($inputPath, '/');
@ -190,7 +190,7 @@ class Scan extends Base {
$users_total = count($users);
if ($users_total === 0) {
$output->writeln('<error>Please specify the user id to scan, --all to scan for all users or --path=...</error>');
return;
return 1;
}
$this->initTools();
@ -219,6 +219,7 @@ class Scan extends Base {
}
$this->presentStats($output);
return 0;
}
/**

View File

@ -149,7 +149,7 @@ class ScanAppData extends Base {
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
# restrict the verbosity level to VERBOSITY_VERBOSE
if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
$output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);

View File

@ -86,7 +86,7 @@ class TransferOwnership extends Command {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$sourceUserObject = $this->userManager->get($input->getArgument('source-user'));
$destinationUserObject = $this->userManager->get($input->getArgument('destination-user'));

View File

@ -100,7 +100,7 @@ class Applicable extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
try {
$mount = $this->globalService->getStorage($mountId);
@ -154,5 +154,6 @@ class Applicable extends Base {
'users' => $applicableUsers,
'groups' => $applicableGroups
]);
return 0;
}
}

View File

@ -59,7 +59,7 @@ class Backends extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$authBackends = $this->backendService->getAuthMechanisms();
$storageBackends = $this->backendService->getBackends();
@ -87,6 +87,7 @@ class Backends extends Base {
}
$this->writeArrayInOutputFormat($input, $output, $data);
return 0;
}
private function serializeAuthBackend(\JsonSerializable $backend) {

View File

@ -64,7 +64,7 @@ class Config extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
$key = $input->getArgument('key');
try {
@ -80,6 +80,7 @@ class Config extends Base {
} else {
$this->getOption($mount, $key, $output);
}
return 0;
}
/**

View File

@ -119,7 +119,7 @@ class Create extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getOption('user');
$mountPoint = $input->getArgument('mount_point');
$storageIdentifier = $input->getArgument('storage_backend');

View File

@ -84,7 +84,7 @@ class Delete extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
try {
$mount = $this->globalService->getStorage($mountId);
@ -105,10 +105,11 @@ class Delete extends Base {
$question = new ConfirmationQuestion('Delete this mount? [y/N] ', false);
if (!$questionHelper->ask($input, $output, $question)) {
return null;
return 1;
}
}
$this->globalService->removeStorage($mountId);
return 0;
}
}

View File

@ -45,7 +45,7 @@ class Export extends ListCommand {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$listCommand = new ListCommand($this->globalService, $this->userService, $this->userSession, $this->userManager);
$listInput = new ArrayInput([], $listCommand->getDefinition());
$listInput->setArgument('user_id', $input->getArgument('user_id'));
@ -54,5 +54,6 @@ class Export extends ListCommand {
$listInput->setOption('show-password', true);
$listInput->setOption('full', true);
$listCommand->execute($listInput, $output);
return 0;
}
}

View File

@ -107,7 +107,7 @@ class Import extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$user = $input->getOption('user');
$path = $input->getArgument('path');
if ($path === '-') {

View File

@ -96,7 +96,7 @@ class ListCommand extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
if ($input->getOption('all')) {
/** @var $mounts StorageConfig[] */
$mounts = $this->globalService->getStorageForAllUsers();
@ -110,6 +110,7 @@ class ListCommand extends Base {
}
$this->listMounts($userId, $mounts, $input, $output);
return 0;
}
/**

View File

@ -88,7 +88,7 @@ class Notify extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$mount = $this->globalService->getStorage($input->getArgument('mount_id'));
if (is_null($mount)) {
$output->writeln('<error>Mount not found</error>');
@ -147,6 +147,7 @@ class Notify extends Base {
}
$this->markParentAsOutdated($mount->getId(), $change->getPath(), $output);
});
return 0;
}
private function createStorage(StorageConfig $mount) {

View File

@ -65,7 +65,7 @@ class Verify extends Base {
parent::configure();
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$mountId = $input->getArgument('mount_id');
$configInput = $input->getOption('config');
@ -83,6 +83,7 @@ class Verify extends Base {
'code' => $mount->getStatus(),
'message' => $mount->getStatusMessage()
]);
return 0;
}
private function manipulateStorageConfig(StorageConfig $storage) {

View File

@ -59,7 +59,7 @@ class CleanupRemoteStorages extends Command {
);
}
public function execute(InputInterface $input, OutputInterface $output) {
public function execute(InputInterface $input, OutputInterface $output): int {
$remoteStorages = $this->getRemoteStorages();
$output->writeln(count($remoteStorages) . ' remote storage(s) need(s) to be checked');
@ -93,6 +93,7 @@ class CleanupRemoteStorages extends Command {
}
}
}
return 0;
}
public function countFiles($numericId, OutputInterface $output) {

View File

@ -63,7 +63,7 @@ class ExiprationNotification extends Command {
->setDescription('Notify share initiators when a share will expire the next day.');
}
public function execute(InputInterface $input, OutputInterface $output) {
public function execute(InputInterface $input, OutputInterface $output): int {
//Current time
$minTime = $this->time->getDateTime();
$minTime->add(new \DateInterval('P1D'));
@ -94,5 +94,6 @@ class ExiprationNotification extends Command {
$notification->setUser($share->getSharedBy());
$this->notificationManager->notify($notification);
}
return 0;
}
}

View File

@ -77,7 +77,7 @@ class CleanUp extends Command {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$users = $input->getArgument('user_id');
if ((!empty($users)) and ($input->getOption('all-users'))) {
throw new InvalidOptionException('Either specify a user_id or --all-users');
@ -88,6 +88,7 @@ class CleanUp extends Command {
$this->removeDeletedFiles($user);
} else {
$output->writeln("<error>Unknown user $user</error>");
return 1;
}
}
} elseif ($input->getOption('all-users')) {
@ -112,6 +113,7 @@ class CleanUp extends Command {
} else {
throw new InvalidOptionException('Either specify a user_id or --all-users');
}
return 0;
}
/**

View File

@ -71,11 +71,11 @@ class ExpireTrash extends Command {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$maxAge = $this->expiration->getMaxAgeAsTimestamp();
if (!$maxAge) {
$output->writeln("No expiry configured.");
return;
return 1;
}
$users = $input->getArgument('user_id');
@ -87,6 +87,7 @@ class ExpireTrash extends Command {
$this->expireTrashForUser($userObject);
} else {
$output->writeln("<error>Unknown user $user</error>");
return 1;
}
}
} else {
@ -99,6 +100,7 @@ class ExpireTrash extends Command {
$p->finish();
$output->writeln('');
}
return 0;
}
public function expireTrashForUser(IUser $user) {

View File

@ -61,7 +61,7 @@ class CleanUp extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$users = $input->getArgument('user_id');
if (!empty($users)) {
foreach ($users as $user) {
@ -70,6 +70,7 @@ class CleanUp extends Command {
$this->deleteVersions($user);
} else {
$output->writeln("<error>Unknown user $user</error>");
return 1;
}
}
} else {
@ -95,6 +96,7 @@ class CleanUp extends Command {
} while (count($users) >= $limit);
}
}
return 0;
}

View File

@ -70,7 +70,7 @@ class ExpireVersions extends Command {
);
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$maxAge = $this->expiration->getMaxAgeAsTimestamp();
if (!$maxAge) {
$output->writeln("No expiry configured.");
@ -86,6 +86,7 @@ class ExpireVersions extends Command {
$this->expireVersionsForUser($userObject);
} else {
$output->writeln("<error>Unknown user $user</error>");
return 1;
}
}
} else {
@ -98,6 +99,7 @@ class ExpireVersions extends Command {
$p->finish();
$output->writeln('');
}
return 0;
}
public function expireVersionsForUser(IUser $user) {

View File

@ -63,7 +63,7 @@ class Check extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$updatesAvailableCount = 0;
// Server

View File

@ -87,7 +87,7 @@ class CheckUser extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
try {
$uid = $input->getArgument('ocName');
$this->isAllowed($input->getOption('force'));
@ -98,15 +98,17 @@ class CheckUser extends Command {
if ($input->getOption('update')) {
$this->updateUser($uid, $output);
}
return;
return 0;
}
$this->dui->markUser($uid);
$output->writeln('The user does not exists on LDAP anymore.');
$output->writeln('Clean up the user\'s remnants by: ./occ user:delete "'
. $uid . '"');
return 0;
} catch (\Exception $e) {
$output->writeln('<error>' . $e->getMessage(). '</error>');
return 1;
}
}

View File

@ -58,7 +58,7 @@ class CreateEmptyConfig extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$configPrefix = $this->helper->getNextServerConfigurationPrefix();
$configHolder = new Configuration($configPrefix);
$configHolder->saveConfiguration();
@ -68,5 +68,6 @@ class CreateEmptyConfig extends Command {
$prose = 'Created new configuration with configID ';
}
$output->writeln($prose . "{$configPrefix}");
return 0;
}
}

View File

@ -57,15 +57,17 @@ class DeleteConfig extends Command {
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$configPrefix = $input->getArgument('configID');
$success = $this->helper->deleteServerConfiguration($configPrefix);
if ($success) {
$output->writeln("Deleted configuration with configID '{$configPrefix}'");
return 0;
} else {
$output->writeln("Cannot delete configuration with configID '{$configPrefix}'");
return 1;
}
}
}

View File

@ -105,7 +105,7 @@ class Search extends Command {
}
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$helper = new Helper($this->ocConfig);
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldapWrapper = new LDAP();
@ -141,5 +141,6 @@ class Search extends Command {
$line = $name . ($printID ? ' ('.$id.')' : '');
$output->writeln($line);
}
return 0;
}
}

View File

@ -59,13 +59,13 @@ class SetConfig extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$helper = new Helper(\OC::$server->getConfig());
$availableConfigs = $helper->getServerConfigurationPrefixes();
$configID = $input->getArgument('configID');
if (!in_array($configID, $availableConfigs)) {
$output->writeln("Invalid configID");
return;
return 1;
}
$this->setValue(
@ -73,6 +73,7 @@ class SetConfig extends Command {
$input->getArgument('configKey'),
$input->getArgument('configValue')
);
return 0;
}
/**

View File

@ -66,20 +66,21 @@ class ShowConfig extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$availableConfigs = $this->helper->getServerConfigurationPrefixes();
$configID = $input->getArgument('configID');
if (!is_null($configID)) {
$configIDs[] = $configID;
if (!in_array($configIDs[0], $availableConfigs)) {
$output->writeln("Invalid configID");
return;
return 1;
}
} else {
$configIDs = $availableConfigs;
}
$this->renderConfigs($configIDs, $output, $input->getOption('show-password'));
return 0;
}
/**

View File

@ -75,7 +75,7 @@ class ShowRemnants extends Command {
*
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
/** @var \Symfony\Component\Console\Helper\Table $table */
$table = new Table($output);
$table->setHeaders([
@ -103,5 +103,6 @@ class ShowRemnants extends Command {
$table->setRows($rows);
$table->render($output);
}
return 0;
}
}

View File

@ -47,13 +47,13 @@ class TestConfig extends Command {
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$helper = new Helper(\OC::$server->getConfig());
$availableConfigs = $helper->getServerConfigurationPrefixes();
$configID = $input->getArgument('configID');
if (!in_array($configID, $availableConfigs)) {
$output->writeln("Invalid configID");
return;
return 1;
}
$result = $this->testConfig($configID);
@ -61,11 +61,13 @@ class TestConfig extends Command {
$output->writeln('The configuration is valid and the connection could be established!');
} elseif ($result === 1) {
$output->writeln('The configuration is invalid. Please have a look at the logs for further details.');
return 1;
} elseif ($result === 2) {
$output->writeln('The configuration is valid, but the Bind failed. Please check the server settings and credentials.');
} else {
$output->writeln('Your LDAP server was kidnapped by aliens.');
}
return 0;
}
/**

View File

@ -69,7 +69,7 @@ class Index extends Command {
return $scopes[$scope] ?? -1;
}
protected function execute(InputInterface $input, OutputInterface $output) {
protected function execute(InputInterface $input, OutputInterface $output): int {
$ops = $this->manager->getAllOperations(
new ScopeContext(
$this->mappedScope($input->getArgument('scope')),
@ -77,5 +77,6 @@ class Index extends Command {
)
);
$output->writeln(\json_encode($ops));
return 0;
}
}