Improve console output
parent
397aeb91e8
commit
6e01d64311
|
@ -65,6 +65,9 @@ class Index extends Command
|
||||||
private int $nSkipped = 0;
|
private int $nSkipped = 0;
|
||||||
private int $nInvalid = 0;
|
private int $nInvalid = 0;
|
||||||
|
|
||||||
|
// Helper for the progress bar
|
||||||
|
private int $previousLineLength = 0;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
IRootFolder $rootFolder,
|
IRootFolder $rootFolder,
|
||||||
IUserManager $userManager,
|
IUserManager $userManager,
|
||||||
|
@ -194,7 +197,7 @@ class Index extends Command
|
||||||
$endTime = microtime(true);
|
$endTime = microtime(true);
|
||||||
$execTime = (int) (($endTime - $startTime) * 1000) / 1000;
|
$execTime = (int) (($endTime - $startTime) * 1000) / 1000;
|
||||||
$nTotal = $this->nInvalid + $this->nSkipped + $this->nProcessed;
|
$nTotal = $this->nInvalid + $this->nSkipped + $this->nProcessed;
|
||||||
$this->output->writeln("\n==========================================");
|
$this->output->writeln("==========================================");
|
||||||
$this->output->writeln("Checked {$nTotal} files in {$execTime} sec");
|
$this->output->writeln("Checked {$nTotal} files in {$execTime} sec");
|
||||||
$this->output->writeln($this->nInvalid.' not valid media items');
|
$this->output->writeln($this->nInvalid.' not valid media items');
|
||||||
$this->output->writeln($this->nSkipped.' skipped because unmodified');
|
$this->output->writeln($this->nSkipped.' skipped because unmodified');
|
||||||
|
@ -250,6 +253,9 @@ class Index extends Command
|
||||||
$uid = $user->getUID();
|
$uid = $user->getUID();
|
||||||
$userFolder = $this->rootFolder->getUserFolder($uid);
|
$userFolder = $this->rootFolder->getUserFolder($uid);
|
||||||
$this->parseFolder($userFolder, $refresh);
|
$this->parseFolder($userFolder, $refresh);
|
||||||
|
if ($this->previousLineLength) {
|
||||||
|
$this->output->write("\r".str_repeat(' ', $this->previousLineLength)."\r");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function parseFolder(Folder &$folder, bool &$refresh): void
|
private function parseFolder(Folder &$folder, bool &$refresh): void
|
||||||
|
@ -260,11 +266,17 @@ class Index extends Command
|
||||||
// Respect the '.nomedia' file. If present don't traverse the folder
|
// Respect the '.nomedia' file. If present don't traverse the folder
|
||||||
if ($folder->nodeExists('.nomedia')) {
|
if ($folder->nodeExists('.nomedia')) {
|
||||||
$this->output->writeln('Skipping folder '.$folderPath." because of .nomedia file");
|
$this->output->writeln('Skipping folder '.$folderPath." because of .nomedia file");
|
||||||
|
$this->previousLineLength = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->output->write('Scanning folder '.$folderPath."\r");
|
// Clear previous line and write new one
|
||||||
|
$line = 'Scanning folder '.$folderPath;
|
||||||
|
if ($this->previousLineLength) {
|
||||||
|
$this->output->write("\r".str_repeat(' ', $this->previousLineLength)."\r");
|
||||||
|
}
|
||||||
|
$this->output->write($line."\r");
|
||||||
|
$this->previousLineLength = strlen($line);
|
||||||
|
|
||||||
$nodes = $folder->getDirectoryListing();
|
$nodes = $folder->getDirectoryListing();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue