Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v20.0.0beta1
@@ -80,7 +80,7 @@ class CheckCode extends Command implements CompletionAwareInterface { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appId = $input->getArgument('app-id'); | |||
$checkList = new EmptyCheck(); |
@@ -60,7 +60,7 @@ class Disable extends Command implements CompletionAwareInterface { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appIds = $input->getArgument('app-id'); | |||
foreach ($appIds as $appId) { |
@@ -83,7 +83,7 @@ class Enable extends Command implements CompletionAwareInterface { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appIds = $input->getArgument('app-id'); | |||
$groups = $this->resolveGroupIds($input->getOption('groups')); | |||
$forceEnable = (bool) $input->getOption('force'); |
@@ -51,7 +51,7 @@ class GetPath extends Base { | |||
* @param OutputInterface $output An OutputInterface instance | |||
* @return null|int null or 0 if everything went fine, or an error code | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$path = \OC_App::getAppPath($appName); | |||
if ($path !== false) { |
@@ -51,7 +51,7 @@ class Install extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appId = $input->getArgument('app-id'); | |||
if (\OC_App::getAppPath($appId)) { |
@@ -61,7 +61,7 @@ class ListApps extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if ($input->getOption('shipped') === 'true' || $input->getOption('shipped') === 'false') { | |||
$shippedFilter = $input->getOption('shipped') === 'true'; | |||
} else { | |||
@@ -97,6 +97,7 @@ class ListApps extends Base { | |||
} | |||
$this->writeAppList($input, $output, $apps); | |||
return 0; | |||
} | |||
/** |
@@ -75,7 +75,7 @@ class Remove extends Command implements CompletionAwareInterface { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appId = $input->getArgument('app-id'); | |||
// Check if the app is installed |
@@ -80,7 +80,7 @@ class Update extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$singleAppId = $input->getArgument('app-id'); | |||
if ($singleAppId) { |
@@ -48,8 +48,8 @@ abstract class Base extends Command { | |||
* @param \OCP\IConfig $config | |||
*/ | |||
public function __construct(IConfig $config) { | |||
$this->config = $config; | |||
parent::__construct(); | |||
$this->config = $config; | |||
} | |||
protected function configure() { | |||
@@ -67,9 +67,10 @@ abstract class Base extends Command { | |||
* @param InputInterface $input | |||
* @param OutputInterface $output | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$mode = $this->getMode(); | |||
$this->config->setAppValue('core', 'backgroundjobs_mode', $mode); | |||
$output->writeln("Set mode for background jobs to '$mode'"); | |||
return 0; | |||
} | |||
} |
@@ -60,7 +60,7 @@ class Test extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$name = $input->getArgument('name'); | |||
$uid = $input->getArgument('uid'); | |||
@@ -50,7 +50,7 @@ class Check extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$errors = \OC_Util::checkServer($this->config); | |||
if (!empty($errors)) { | |||
$errors = array_map(function ($item) { |
@@ -65,7 +65,7 @@ class DeleteConfig extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$configName = $input->getArgument('name'); | |||
@@ -72,7 +72,7 @@ class GetConfig extends Base { | |||
* @param OutputInterface $output An OutputInterface instance | |||
* @return null|int null or 0 if everything went fine, or an error code | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$configName = $input->getArgument('name'); | |||
$defaultValue = $input->getOption('default-value'); |
@@ -71,7 +71,7 @@ class SetConfig extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$configName = $input->getArgument('name'); | |||
@@ -60,7 +60,7 @@ class Import extends Command implements CompletionAwareInterface { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$importFile = $input->getArgument('file'); | |||
if ($importFile !== null) { | |||
$content = $this->getArrayFromFile($importFile); | |||
@@ -72,7 +72,7 @@ class Import extends Command implements CompletionAwareInterface { | |||
$configs = $this->validateFileContent($content); | |||
} catch (\UnexpectedValueException $e) { | |||
$output->writeln('<error>' . $e->getMessage(). '</error>'); | |||
return; | |||
return 1; | |||
} | |||
if (!empty($configs['system'])) { | |||
@@ -92,6 +92,7 @@ class Import extends Command implements CompletionAwareInterface { | |||
} | |||
$output->writeln('<info>Config successfully imported from: ' . $importFile . '</info>'); | |||
return 0; | |||
} | |||
/** |
@@ -71,7 +71,7 @@ class ListConfigs extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$app = $input->getArgument('app'); | |||
$noSensitiveValues = !$input->getOption('private'); | |||
@@ -102,6 +102,7 @@ class ListConfigs extends Base { | |||
} | |||
$this->writeArrayInOutputFormat($input, $output, $configs); | |||
return 0; | |||
} | |||
/** |
@@ -62,7 +62,7 @@ class DeleteConfig extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$configNames = $input->getArgument('name'); | |||
$configName = $configNames[0]; | |||
@@ -68,7 +68,7 @@ class GetConfig extends Base { | |||
* @param OutputInterface $output An OutputInterface instance | |||
* @return null|int null or 0 if everything went fine, or an error code | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$configNames = $input->getArgument('name'); | |||
$configName = array_shift($configNames); | |||
$defaultValue = $input->getOption('default-value'); |
@@ -77,7 +77,7 @@ class SetConfig extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$configNames = $input->getArgument('name'); | |||
$configName = $configNames[0]; | |||
$configValue = $this->castValue($input->getOption('value'), $input->getOption('type')); |
@@ -63,12 +63,13 @@ class AddMissingColumns extends Command { | |||
->setDescription('Add missing optional columns to the database tables'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$this->addCoreColumns($output); | |||
// Dispatch event so apps can also update columns if needed | |||
$event = new GenericEvent($output); | |||
$this->dispatcher->dispatch(IDBConnection::ADD_MISSING_COLUMNS_EVENT, $event); | |||
return 0; | |||
} | |||
/** |
@@ -69,12 +69,13 @@ class AddMissingIndices extends Command { | |||
->setDescription('Add missing indices to the database tables'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$this->addCoreIndexes($output); | |||
// Dispatch event so apps can also update indexes if needed | |||
$event = new GenericEvent($output); | |||
$this->dispatcher->dispatch(IDBConnection::ADD_MISSING_INDEXES_EVENT, $event); | |||
return 0; | |||
} | |||
/** |
@@ -71,7 +71,7 @@ class ConvertFilecacheBigInt extends Command { | |||
]; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$schema = new SchemaWrapper($this->connection); | |||
$isSqlite = $this->connection->getDatabasePlatform() instanceof SqlitePlatform; | |||
$updates = []; |
@@ -68,7 +68,7 @@ class ConvertMysqlToMB4 extends Command { | |||
->setDescription('Convert charset of MySQL/MariaDB to use utf8mb4'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if (!$this->connection->getDatabasePlatform() instanceof MySqlPlatform) { | |||
$output->writeln("This command is only valid for MySQL/MariaDB databases."); | |||
return 1; |
@@ -188,7 +188,7 @@ class ConvertType extends Command implements CompletionAwareInterface { | |||
} | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$this->validateInput($input, $output); | |||
$this->readPassword($input, $output); | |||
@@ -221,11 +221,12 @@ class ConvertType extends Command implements CompletionAwareInterface { | |||
$helper = $this->getHelper('question'); | |||
if (!$helper->ask($input, $output, $question)) { | |||
return; | |||
return 1; | |||
} | |||
} | |||
$intersectingTables = array_intersect($toTables, $fromTables); | |||
$this->convertDB($fromDB, $toDB, $intersectingTables, $input, $output); | |||
return 0; | |||
} | |||
protected function createSchema(Connection $fromDB, Connection $toDB, InputInterface $input, OutputInterface $output) { |
@@ -75,7 +75,7 @@ class ExecuteCommand extends Command implements CompletionAwareInterface { | |||
* @param OutputInterface $output | |||
* @return int | |||
*/ | |||
public function execute(InputInterface $input, OutputInterface $output) { | |||
public function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output)); | |||
$version = $input->getArgument('version'); |
@@ -110,7 +110,7 @@ class {{classname}} extends SimpleMigrationStep { | |||
parent::configure(); | |||
} | |||
public function execute(InputInterface $input, OutputInterface $output) { | |||
public function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$version = $input->getArgument('version'); | |||
@@ -52,7 +52,7 @@ class GenerateFromSchemaFileCommand extends GenerateCommand { | |||
$this->setName('migrations:generate-from-schema'); | |||
} | |||
public function execute(InputInterface $input, OutputInterface $output) { | |||
public function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$version = $input->getArgument('version'); | |||
@@ -55,12 +55,13 @@ class MigrateCommand extends Command implements CompletionAwareInterface { | |||
parent::configure(); | |||
} | |||
public function execute(InputInterface $input, OutputInterface $output) { | |||
public function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output)); | |||
$version = $input->getArgument('version'); | |||
$ms->migrate($version); | |||
return 0; | |||
} | |||
/** |
@@ -53,7 +53,7 @@ class StatusCommand extends Command implements CompletionAwareInterface { | |||
->addArgument('app', InputArgument::REQUIRED, 'Name of the app this migration command shall work on'); | |||
} | |||
public function execute(InputInterface $input, OutputInterface $output) { | |||
public function execute(InputInterface $input, OutputInterface $output): int { | |||
$appName = $input->getArgument('app'); | |||
$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output)); | |||
@@ -68,6 +68,7 @@ class StatusCommand extends Command implements CompletionAwareInterface { | |||
$output->writeln(" <comment>>></comment> $key: " . str_repeat(' ', 50 - strlen($key)) . $value); | |||
} | |||
} | |||
return 0; | |||
} | |||
/** |
@@ -84,14 +84,14 @@ class ChangeKeyStorageRoot extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$oldRoot = $this->util->getKeyStorageRoot(); | |||
$newRoot = $input->getArgument('newRoot'); | |||
if ($newRoot === null) { | |||
$question = new ConfirmationQuestion('No storage root given, do you want to reset the key storage root to the default location? (y/n) ', false); | |||
if (!$this->questionHelper->ask($input, $output, $question)) { | |||
return; | |||
return 1; | |||
} | |||
$newRoot = ''; | |||
} | |||
@@ -104,7 +104,9 @@ class ChangeKeyStorageRoot extends Command { | |||
$this->util->setKeyStorageRoot($newRoot); | |||
$output->writeln(''); | |||
$output->writeln("Key storage root successfully changed to <info>$newRootDescription</info>"); | |||
return 0; | |||
} | |||
return 1; | |||
} | |||
/** |
@@ -125,14 +125,14 @@ class DecryptAll extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if (!$input->isInteractive()) { | |||
$output->writeln('Invalid TTY.'); | |||
$output->writeln('If you are trying to execute the command in a Docker '); | |||
$output->writeln("container, do not forget to execute 'docker exec' with"); | |||
$output->writeln("the '-i' and '-t' options."); | |||
$output->writeln(''); | |||
return; | |||
return 1; | |||
} | |||
$isMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false); | |||
@@ -141,7 +141,7 @@ class DecryptAll extends Command { | |||
$output->writeln("in order to load the relevant encryption modules correctly."); | |||
$output->writeln("Your instance will automatically be put to maintenance mode"); | |||
$output->writeln("during the actual decryption of the files."); | |||
return; | |||
return 1; | |||
} | |||
try { | |||
@@ -151,7 +151,7 @@ class DecryptAll extends Command { | |||
$output->writeln('done.'); | |||
} else { | |||
$output->writeln('Server side encryption not enabled. Nothing to do.'); | |||
return; | |||
return 0; | |||
} | |||
$uid = $input->getArgument('user'); | |||
@@ -181,11 +181,13 @@ class DecryptAll extends Command { | |||
$this->config->setAppValue('core', 'encryption_enabled', 'yes'); | |||
} | |||
$this->resetMaintenanceAndTrashbin(); | |||
return 0; | |||
} else { | |||
$output->write('Enable server side encryption... '); | |||
$this->config->setAppValue('core', 'encryption_enabled', 'yes'); | |||
$output->writeln('done.'); | |||
$output->writeln('aborted'); | |||
return 1; | |||
} | |||
} catch (\Exception $e) { | |||
// enable server side encryption again if something went wrong |
@@ -46,12 +46,13 @@ class Disable extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if ($this->config->getAppValue('core', 'encryption_enabled', 'no') !== 'yes') { | |||
$output->writeln('Encryption is already disabled'); | |||
} else { | |||
$this->config->setAppValue('core', 'encryption_enabled', 'no'); | |||
$output->writeln('<info>Encryption disabled</info>'); | |||
} | |||
return 0; | |||
} | |||
} |
@@ -54,7 +54,7 @@ class Enable extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if ($this->config->getAppValue('core', 'encryption_enabled', 'no') === 'yes') { | |||
$output->writeln('Encryption is already enabled'); | |||
} else { | |||
@@ -66,15 +66,19 @@ class Enable extends Command { | |||
$modules = $this->encryptionManager->getEncryptionModules(); | |||
if (empty($modules)) { | |||
$output->writeln('<error>No encryption module is loaded</error>'); | |||
return 1; | |||
} else { | |||
$defaultModule = $this->config->getAppValue('core', 'default_encryption_module', null); | |||
if ($defaultModule === null) { | |||
$output->writeln('<error>No default module is set</error>'); | |||
return 1; | |||
} elseif (!isset($modules[$defaultModule])) { | |||
$output->writeln('<error>The current default module does not exist: ' . $defaultModule . '</error>'); | |||
return 1; | |||
} else { | |||
$output->writeln('Default module: ' . $defaultModule); | |||
} | |||
} | |||
return 0; | |||
} | |||
} |
@@ -106,14 +106,14 @@ class EncryptAll extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if (!$input->isInteractive()) { | |||
$output->writeln('Invalid TTY.'); | |||
$output->writeln('If you are trying to execute the command in a Docker '); | |||
$output->writeln("container, do not forget to execute 'docker exec' with"); | |||
$output->writeln("the '-i' and '-t' options."); | |||
$output->writeln(''); | |||
return; | |||
return 1; | |||
} | |||
if ($this->encryptionManager->isEnabled() === false) { | |||
@@ -141,6 +141,8 @@ class EncryptAll extends Command { | |||
$this->resetMaintenanceAndTrashbin(); | |||
} else { | |||
$output->writeln('aborted'); | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -59,12 +59,12 @@ class ListModules extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$isMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false); | |||
if ($isMaintenanceModeEnabled) { | |||
$output->writeln("Maintenance mode must be disabled when listing modules"); | |||
$output->writeln("in order to list the relevant encryption modules correctly."); | |||
return; | |||
return 1; | |||
} | |||
$encryptionModules = $this->encryptionManager->getEncryptionModules(); | |||
@@ -76,6 +76,7 @@ class ListModules extends Base { | |||
$encModules[$module['id']]['default'] = $module['id'] === $defaultEncryptionModuleId; | |||
} | |||
$this->writeModuleList($input, $output, $encModules); | |||
return 0; | |||
} | |||
/** |
@@ -65,12 +65,12 @@ class SetDefaultModule extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$isMaintenanceModeEnabled = $this->config->getSystemValue('maintenance', false); | |||
if ($isMaintenanceModeEnabled) { | |||
$output->writeln("Maintenance mode must be disabled when setting default module,"); | |||
$output->writeln("in order to load the relevant encryption modules correctly."); | |||
return; | |||
return 1; | |||
} | |||
$moduleId = $input->getArgument('module'); | |||
@@ -81,6 +81,8 @@ class SetDefaultModule extends Command { | |||
$output->writeln('<info>Set default module to "' . $moduleId . '"</info>'); | |||
} else { | |||
$output->writeln('<error>The specified module "' . $moduleId . '" does not exist</error>'); | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -48,11 +48,12 @@ class ShowKeyStorageRoot extends Command { | |||
->setDescription('Show current key storage root'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$currentRoot = $this->util->getKeyStorageRoot(); | |||
$rootDescription = $currentRoot !== '' ? $currentRoot : 'default storage location (data/)'; | |||
$output->writeln("Current key storage root: <info>$rootDescription</info>"); | |||
return 0; | |||
} | |||
} |
@@ -48,10 +48,11 @@ class Status extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$this->writeArrayInOutputFormat($input, $output, [ | |||
'enabled' => $this->encryptionManager->isEnabled(), | |||
'defaultModule' => $this->encryptionManager->getDefaultEncryptionModuleId(), | |||
]); | |||
return 0; | |||
} | |||
} |
@@ -65,7 +65,7 @@ class Add extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$gid = $input->getArgument('groupid'); | |||
$group = $this->groupManager->get($gid); | |||
if ($group) { |
@@ -61,7 +61,7 @@ class AddUser extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$group = $this->groupManager->get($input->getArgument('group')); | |||
if (is_null($group)) { | |||
$output->writeln('<error>group not found</error>'); | |||
@@ -73,5 +73,6 @@ class AddUser extends Base { | |||
return 1; | |||
} | |||
$group->addUser($user); | |||
return 0; | |||
} | |||
} |
@@ -55,7 +55,7 @@ class Delete extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$gid = $input->getArgument('groupid'); | |||
if ($gid === 'admin') { | |||
$output->writeln('<error>Group "' . $gid . '" could not be deleted.</error>'); | |||
@@ -72,5 +72,6 @@ class Delete extends Base { | |||
$output->writeln('<error>Group "' . $gid . '" could not be deleted. Please check the logs.</error>'); | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -67,9 +67,10 @@ class ListCommand extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$groups = $this->groupManager->search('', (int)$input->getOption('limit'), (int)$input->getOption('offset')); | |||
$this->writeArrayInOutputFormat($input, $output, $this->formatGroups($groups)); | |||
return 0; | |||
} | |||
/** |
@@ -61,7 +61,7 @@ class RemoveUser extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$group = $this->groupManager->get($input->getArgument('group')); | |||
if (is_null($group)) { | |||
$output->writeln('<error>group not found</error>'); | |||
@@ -73,5 +73,6 @@ class RemoveUser extends Base { | |||
return 1; | |||
} | |||
$group->removeUser($user); | |||
return 0; | |||
} | |||
} |
@@ -66,7 +66,7 @@ class CheckApp extends Base { | |||
/** | |||
* {@inheritdoc } | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$appid = $input->getArgument('appid'); | |||
$path = (string)$input->getOption('path'); | |||
$result = $this->checker->verifyAppSignature($appid, $path); | |||
@@ -74,5 +74,6 @@ class CheckApp extends Base { | |||
if (count($result)>0) { | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -59,11 +59,12 @@ class CheckCore extends Base { | |||
/** | |||
* {@inheritdoc } | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$result = $this->checker->verifyCoreSignature(); | |||
$this->writeArrayInOutputFormat($input, $output, $result); | |||
if (count($result)>0) { | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -73,7 +73,7 @@ class SignApp extends Command { | |||
/** | |||
* {@inheritdoc } | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$path = $input->getOption('path'); | |||
$privateKeyPath = $input->getOption('privateKey'); | |||
$keyBundlePath = $input->getOption('certificate'); | |||
@@ -82,7 +82,7 @@ class SignApp extends Command { | |||
$output->writeln('This command requires the --path, --privateKey and --certificate.'); | |||
$output->writeln('Example: ./occ integrity:sign-app --path="/Users/lukasreschke/Programming/myapp/" --privateKey="/Users/lukasreschke/private/myapp.key" --certificate="/Users/lukasreschke/public/mycert.crt"'); | |||
$output->writeln('For more information please consult the documentation: '. $documentationUrl); | |||
return null; | |||
return 1; | |||
} | |||
$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath); | |||
@@ -90,12 +90,12 @@ class SignApp extends Command { | |||
if ($privateKey === false) { | |||
$output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath)); | |||
return null; | |||
return 1; | |||
} | |||
if ($keyBundle === false) { | |||
$output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath)); | |||
return null; | |||
return 1; | |||
} | |||
$rsa = new RSA(); |
@@ -67,13 +67,13 @@ class SignCore extends Command { | |||
/** | |||
* {@inheritdoc } | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$privateKeyPath = $input->getOption('privateKey'); | |||
$keyBundlePath = $input->getOption('certificate'); | |||
$path = $input->getOption('path'); | |||
if (is_null($privateKeyPath) || is_null($keyBundlePath) || is_null($path)) { | |||
$output->writeln('--privateKey, --certificate and --path are required.'); | |||
return null; | |||
return 1; | |||
} | |||
$privateKey = $this->fileAccessHelper->file_get_contents($privateKeyPath); | |||
@@ -81,12 +81,12 @@ class SignCore extends Command { | |||
if ($privateKey === false) { | |||
$output->writeln(sprintf('Private key "%s" does not exists.', $privateKeyPath)); | |||
return null; | |||
return 1; | |||
} | |||
if ($keyBundle === false) { | |||
$output->writeln(sprintf('Certificate "%s" does not exists.', $keyBundlePath)); | |||
return null; | |||
return 1; | |||
} | |||
$rsa = new RSA(); |
@@ -52,14 +52,14 @@ class CreateJs extends Command implements CompletionAwareInterface { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$app = $input->getArgument('app'); | |||
$lang = $input->getArgument('lang'); | |||
$path = \OC_App::getAppPath($app); | |||
if ($path === false) { | |||
$output->writeln("The app <$app> is unknown."); | |||
return; | |||
return 1; | |||
} | |||
$languages = $lang; | |||
if (empty($lang)) { | |||
@@ -69,6 +69,7 @@ class CreateJs extends Command implements CompletionAwareInterface { | |||
foreach ($languages as $lang) { | |||
$this->writeFiles($app, $path, $lang, $output); | |||
} | |||
return 0; | |||
} | |||
private function getAllLanguages($path) { |
@@ -72,7 +72,7 @@ class File extends Command implements Completion\CompletionAwareInterface { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$toBeSet = []; | |||
if ($input->getOption('enable')) { | |||
@@ -115,6 +115,7 @@ class File extends Command implements Completion\CompletionAwareInterface { | |||
$rotateString = 'disabled'; | |||
} | |||
$output->writeln('Rotate at: '.$rotateString); | |||
return 0; | |||
} | |||
/** |
@@ -73,7 +73,7 @@ class Manage extends Command implements CompletionAwareInterface { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
// collate config setting to the end, to avoid partial configuration | |||
$toBeSet = []; | |||
@@ -114,6 +114,7 @@ class Manage extends Command implements CompletionAwareInterface { | |||
$timezone = $this->config->getSystemValue('logtimezone', self::DEFAULT_TIMEZONE); | |||
$output->writeln('Log timezone: '.$timezone); | |||
return 0; | |||
} | |||
/** |
@@ -48,7 +48,8 @@ class DataFingerprint extends Command { | |||
->setDescription('update the systems data-fingerprint after a backup is restored'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$this->config->setSystemValue('data-fingerprint', md5($this->timeFactory->getTime())); | |||
return 0; | |||
} | |||
} |
@@ -73,7 +73,7 @@ class Install extends Command { | |||
->addOption('data-dir', null, InputOption::VALUE_REQUIRED, 'Path to data directory', \OC::$SERVERROOT."/data"); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
// validate the environment | |||
$server = \OC::$server; |
@@ -63,7 +63,7 @@ class UpdateDB extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$mappings = $this->mimetypeDetector->getAllMappings(); | |||
$totalFilecacheUpdates = 0; | |||
@@ -95,5 +95,6 @@ class UpdateDB extends Command { | |||
$output->writeln('Added '.$totalNewMimetypes.' new mimetypes'); | |||
$output->writeln('Updated '.$totalFilecacheUpdates.' filecache rows'); | |||
return 0; | |||
} | |||
} |
@@ -48,7 +48,7 @@ class UpdateJS extends Command { | |||
->setDescription('Update mimetypelist.js'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
// Fetch all the aliases | |||
$aliases = $this->mimetypeDetector->getAllAliases(); | |||
@@ -57,5 +57,6 @@ class UpdateJS extends Command { | |||
file_put_contents(\OC::$SERVERROOT.'/core/js/mimetypelist.js', $generatedMimetypeFile->generateFile($aliases)); | |||
$output->writeln('<info>mimetypelist.js is updated'); | |||
return 0; | |||
} | |||
} |
@@ -61,7 +61,7 @@ class Mode extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$maintenanceMode = $this->config->getSystemValueBool('maintenance'); | |||
if ($input->getOption('on')) { | |||
if ($maintenanceMode === false) { | |||
@@ -84,5 +84,6 @@ class Mode extends Command { | |||
$output->writeln('Maintenance mode is currently disabled'); | |||
} | |||
} | |||
return 0; | |||
} | |||
} |
@@ -79,7 +79,7 @@ class Repair extends Command { | |||
'Use this option when you want to include resource and load expensive tasks'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$repairSteps = $this->repair::getRepairSteps(); | |||
if ($input->getOption('include-expensive')) { | |||
@@ -126,6 +126,7 @@ class Repair extends Command { | |||
$this->repair->run(); | |||
$this->config->setSystemValue('maintenance', $maintenanceMode); | |||
return 0; | |||
} | |||
public function handleRepairFeedBack($event) { |
@@ -36,7 +36,7 @@ class UpdateHtaccess extends Command { | |||
->setDescription('Updates the .htaccess file'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if (\OC\Setup::updateHtaccess()) { | |||
$output->writeln('.htaccess has been updated'); | |||
return 0; |
@@ -54,7 +54,7 @@ class UpdateTheme extends UpdateJS { | |||
->setDescription('Apply custom theme changes'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
// run mimetypelist.js update since themes might change mimetype icons | |||
parent::execute($input, $output); | |||
@@ -62,5 +62,6 @@ class UpdateTheme extends UpdateJS { | |||
$c = $this->cacheFactory->createDistributed('imagePath'); | |||
$c->clear(''); | |||
$output->writeln('<info>Image cache cleared</info>'); | |||
return 0; | |||
} | |||
} |
@@ -49,17 +49,18 @@ class ImportCertificate extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$path = $input->getArgument('path'); | |||
if (!file_exists($path)) { | |||
$output->writeln('<error>certificate not found</error>'); | |||
return; | |||
return 1; | |||
} | |||
$certData = file_get_contents($path); | |||
$name = basename($path); | |||
$this->certificateManager->addCertificate($certData, $name); | |||
return 0; | |||
} | |||
} |
@@ -50,7 +50,7 @@ class ListCertificates extends Base { | |||
parent::configure(); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$outputType = $input->getOption('output'); | |||
if ($outputType === self::OUTPUT_FORMAT_JSON || $outputType === self::OUTPUT_FORMAT_JSON_PRETTY) { | |||
$certificates = array_map(function (ICertificate $certificate) { | |||
@@ -91,5 +91,6 @@ class ListCertificates extends Base { | |||
$table->setRows($rows); | |||
$table->render(); | |||
} | |||
return 0; | |||
} | |||
} |
@@ -50,9 +50,10 @@ class RemoveCertificate extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$name = $input->getArgument('name'); | |||
$this->certificateManager->removeCertificate($name); | |||
return 0; | |||
} | |||
} |
@@ -49,7 +49,7 @@ class ResetBruteforceAttempts extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$ip = $input->getArgument('ipaddress'); | |||
if (!filter_var($ip, FILTER_VALIDATE_IP)) { | |||
@@ -58,5 +58,6 @@ class ResetBruteforceAttempts extends Base { | |||
} | |||
$this->throttler->resetDelayForIP($ip); | |||
return 0; | |||
} | |||
} |
@@ -38,7 +38,7 @@ class Status extends Base { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$values = [ | |||
'installed' => (bool) \OC::$server->getConfig()->getSystemValue('installed', false), | |||
'version' => implode('.', \OCP\Util::getVersion()), | |||
@@ -47,5 +47,6 @@ class Status extends Base { | |||
]; | |||
$this->writeArrayInOutputFormat($input, $output, $values); | |||
return 0; | |||
} | |||
} |
@@ -50,11 +50,12 @@ class Cleanup extends Base { | |||
$this->addArgument('provider-id', InputArgument::REQUIRED); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$providerId = $input->getArgument('provider-id'); | |||
$this->registry->cleanUp($providerId); | |||
$output->writeln("<info>All user-provider associations for provider <options=bold>$providerId</> have been removed.</info>"); | |||
return 0; | |||
} | |||
} |
@@ -52,7 +52,7 @@ class Disable extends Base { | |||
$this->addArgument('provider_id', InputArgument::REQUIRED); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$uid = $input->getArgument('uid'); | |||
$providerId = $input->getArgument('provider_id'); | |||
$user = $this->userManager->get($uid); |
@@ -52,7 +52,7 @@ class Enable extends Base { | |||
$this->addArgument('provider_id', InputArgument::REQUIRED); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$uid = $input->getArgument('uid'); | |||
$providerId = $input->getArgument('provider_id'); | |||
$user = $this->userManager->get($uid); |
@@ -74,7 +74,7 @@ class Enforce extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if ($input->getOption('on')) { | |||
$enforcedGroups = $input->getOption('group'); | |||
$excludedGroups = $input->getOption('exclude'); | |||
@@ -89,6 +89,7 @@ class Enforce extends Command { | |||
} else { | |||
$this->writeNotEnforced($output); | |||
} | |||
return 0; | |||
} | |||
/** |
@@ -52,7 +52,7 @@ class State extends Base { | |||
$this->addArgument('uid', InputArgument::REQUIRED); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$uid = $input->getArgument('uid'); | |||
$user = $this->userManager->get($uid); | |||
if (is_null($user)) { |
@@ -83,7 +83,7 @@ class Upgrade extends Command { | |||
* @param InputInterface $input input interface | |||
* @param OutputInterface $output output interface | |||
*/ | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
if (Util::needUpgrade()) { | |||
if (OutputInterface::VERBOSITY_NORMAL < $output->getVerbosity()) { | |||
// Prepend each line with a little timestamp |
@@ -85,7 +85,7 @@ class Add extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$uid = $input->getArgument('uid'); | |||
if ($this->userManager->userExists($uid)) { | |||
$output->writeln('<error>The user "' . $uid . '" already exists.</error>'); | |||
@@ -164,5 +164,6 @@ class Add extends Command { | |||
$output->writeln('User "' . $user->getUID() . '" added to group "' . $group->getGID() . '"'); | |||
} | |||
} | |||
return 0; | |||
} | |||
} |
@@ -55,18 +55,19 @@ class Delete extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$user = $this->userManager->get($input->getArgument('uid')); | |||
if (is_null($user)) { | |||
$output->writeln('<error>User does not exist</error>'); | |||
return; | |||
return 0; | |||
} | |||
if ($user->delete()) { | |||
$output->writeln('<info>The specified user was deleted</info>'); | |||
return; | |||
return 0; | |||
} | |||
$output->writeln('<error>The specified user could not be deleted. Please check the logs.</error>'); | |||
return 1; | |||
} | |||
} |
@@ -52,14 +52,15 @@ class Disable extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$user = $this->userManager->get($input->getArgument('uid')); | |||
if (is_null($user)) { | |||
$output->writeln('<error>User does not exist</error>'); | |||
return; | |||
return 1; | |||
} | |||
$user->setEnabled(false); | |||
$output->writeln('<info>The specified user is disabled</info>'); | |||
return 0; | |||
} | |||
} |
@@ -52,14 +52,15 @@ class Enable extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$user = $this->userManager->get($input->getArgument('uid')); | |||
if (is_null($user)) { | |||
$output->writeln('<error>User does not exist</error>'); | |||
return; | |||
return 1; | |||
} | |||
$user->setEnabled(true); | |||
$output->writeln('<info>The specified user is enabled</info>'); | |||
return 0; | |||
} | |||
} |
@@ -65,7 +65,7 @@ class Info extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$user = $this->userManager->get($input->getArgument('user')); | |||
if (is_null($user)) { | |||
$output->writeln('<error>user not found</error>'); | |||
@@ -85,5 +85,6 @@ class Info extends Base { | |||
'backend' => $user->getBackendClassName() | |||
]; | |||
$this->writeArrayInOutputFormat($input, $output, $data); | |||
return 0; | |||
} | |||
} |
@@ -56,11 +56,11 @@ class LastSeen extends Command { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$user = $this->userManager->get($input->getArgument('uid')); | |||
if (is_null($user)) { | |||
$output->writeln('<error>User does not exist</error>'); | |||
return; | |||
return 1; | |||
} | |||
$lastLogin = $user->getLastLogin(); | |||
@@ -73,5 +73,6 @@ class LastSeen extends Command { | |||
$output->writeln($user->getUID() . | |||
'`s last login: ' . $date->format('d.m.Y H:i')); | |||
} | |||
return 0; | |||
} | |||
} |
@@ -81,10 +81,11 @@ class ListCommand extends Base { | |||
); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$users = $this->userManager->search('', (int) $input->getOption('limit'), (int) $input->getOption('offset')); | |||
$this->writeArrayInOutputFormat($input, $output, $this->formatUsers($users, (bool)$input->getOption('info'))); | |||
return 0; | |||
} | |||
/** | |||
@@ -96,7 +97,7 @@ class ListCommand extends Base { | |||
$keys = array_map(function (IUser $user) { | |||
return $user->getUID(); | |||
}, $users); | |||
$values = array_map(function (IUser $user) use ($detailed) { | |||
if ($detailed) { | |||
$groups = $this->groupManager->getUserGroupIds($user); |
@@ -51,7 +51,7 @@ class Report extends Command { | |||
->setDescription('shows how many users have access'); | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$table = new Table($output); | |||
$table->setHeaders(['User Report', '']); | |||
$userCountArray = $this->countUsers(); | |||
@@ -75,6 +75,7 @@ class Report extends Command { | |||
$table->setRows($rows); | |||
$table->render(); | |||
return 0; | |||
} | |||
private function countUsers() { |
@@ -67,7 +67,7 @@ class ResetPassword extends Command { | |||
; | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
$username = $input->getArgument('user'); | |||
/** @var $user \OCP\IUser */ | |||
@@ -134,5 +134,6 @@ class ResetPassword extends Command { | |||
$output->writeln("<error>Error while resetting password!</error>"); | |||
return 1; | |||
} | |||
return 0; | |||
} | |||
} |
@@ -158,7 +158,7 @@ class Setting extends Base { | |||
} | |||
} | |||
protected function execute(InputInterface $input, OutputInterface $output) { | |||
protected function execute(InputInterface $input, OutputInterface $output): int { | |||
try { | |||
$this->checkInput($input); | |||
} catch (\InvalidArgumentException $e) { |