From: Daniel Kesselberg Date: Sun, 26 Apr 2020 18:37:21 +0000 (+0200) Subject: Set exit code if something went wrong. X-Git-Tag: v19.0.0beta6~22^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F20673%2Fhead;p=nextcloud-server.git Set exit code if something went wrong. Signed-off-by: Daniel Kesselberg --- diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php index 0d34bc1e72c..47cd81e6b4e 100644 --- a/apps/files/lib/Command/ScanAppData.php +++ b/apps/files/lib/Command/ScanAppData.php @@ -81,20 +81,20 @@ class ScanAppData extends Base { } } - protected function scanFiles(OutputInterface $output, string $folder) { + protected function scanFiles(OutputInterface $output, string $folder): int { try { $appData = $this->getAppDataFolder(); } catch (NotFoundException $e) { - $output->writeln('NoAppData folder found'); - return; + $output->writeln('NoAppData folder found'); + return 1; } if ($folder !== '') { try { $appData = $appData->get($folder); } catch (NotFoundException $e) { - $output->writeln('Could not find folder: ' . $folder); - return; + $output->writeln('Could not find folder: ' . $folder . ''); + return 1; } } @@ -130,16 +130,22 @@ class ScanAppData extends Base { $scanner->scan($appData->getPath()); } catch (ForbiddenException $e) { $output->writeln('Storage not writable'); - $output->writeln('Make sure you\'re running the scan command only as the user the web server runs as'); + $output->writeln('Make sure you\'re running the scan command only as the user the web server runs as'); + return 1; } catch (InterruptedException $e) { # exit the function if ctrl-c has been pressed - $output->writeln('Interrupted by user'); + $output->writeln('Interrupted by user'); + return 1; } catch (NotFoundException $e) { $output->writeln('Path not found: ' . $e->getMessage() . ''); + return 1; } catch (\Exception $e) { $output->writeln('Exception during scan: ' . $e->getMessage() . ''); $output->writeln('' . $e->getTraceAsString() . ''); + return 1; } + + return 0; } @@ -149,15 +155,18 @@ class ScanAppData extends Base { $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE); } - $output->writeln("\nScanning AppData for files"); + $output->writeln('Scanning AppData for files'); + $output->writeln(''); $folder = $input->getArgument('folder'); $this->initTools(); - $this->scanFiles($output, $folder); - - $this->presentStats($output); + $exitCode = $this->scanFiles($output, $folder); + if ($exitCode === 0) { + $this->presentStats($output); + } + return $exitCode; } /** @@ -196,7 +205,6 @@ class ScanAppData extends Base { protected function presentStats(OutputInterface $output) { // Stop the timer $this->execTime += microtime(true); - $output->writeln(""); $headers = [ 'Folders', 'Files', 'Elapsed time'