Merge pull request #4684 from owncloud/improved-console
Use more object oriented way for console commandsremotes/origin/stable6
commit
8e26f291a7
@ -1 +1 @@ |
||||
Subproject commit dc87ea630287f27502eba825fbb19fcc33c34c86 |
||||
Subproject commit 98fdc3a4e2f56f7d231470418222162dbf95f46a |
@ -0,0 +1,9 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
$application->add(new OCA\Files\Command\Scan(OC_User::getManager())); |
@ -0,0 +1,73 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu> |
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
namespace OCA\Files\Command; |
||||
|
||||
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; |
||||
|
||||
class Scan extends Command { |
||||
|
||||
/** |
||||
* @var \OC\User\Manager $userManager |
||||
*/ |
||||
private $userManager; |
||||
|
||||
public function __construct(\OC\User\Manager $userManager) { |
||||
$this->userManager = $userManager; |
||||
parent::__construct(); |
||||
} |
||||
|
||||
protected function configure() { |
||||
$this |
||||
->setName('files:scan') |
||||
->setDescription('rescan filesystem') |
||||
->addArgument( |
||||
'user_id', |
||||
InputArgument::OPTIONAL | InputArgument::IS_ARRAY, |
||||
'will rescan all files of the given user(s)' |
||||
) |
||||
->addOption( |
||||
'all', |
||||
null, |
||||
InputOption::VALUE_NONE, |
||||
'will rescan all files of all known users' |
||||
) |
||||
; |
||||
} |
||||
|
||||
protected function scanFiles($user, OutputInterface $output) { |
||||
$scanner = new \OC\Files\Utils\Scanner($user); |
||||
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) use ($output) { |
||||
$output->writeln("Scanning <info>$path</info>"); |
||||
}); |
||||
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) { |
||||
$output->writeln("Scanning <info>$path</info>"); |
||||
}); |
||||
$scanner->scan(''); |
||||
} |
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output) { |
||||
if ($input->getOption('all')) { |
||||
$users = $this->userManager->search(''); |
||||
} else { |
||||
$users = $input->getArgument('user_id'); |
||||
} |
||||
|
||||
foreach ($users as $user) { |
||||
if (is_object($user)) { |
||||
$user = $user->getUID(); |
||||
} |
||||
$this->scanFiles($user, $output); |
||||
} |
||||
} |
||||
} |
@ -1,31 +0,0 @@ |
||||
<?php |
||||
|
||||
if (count($argv) !== 2) { |
||||
echo "Usage:" . PHP_EOL; |
||||
echo " files:scan <user_id>" . PHP_EOL; |
||||
echo " will rescan all files of the given user" . PHP_EOL; |
||||
echo " files:scan --all" . PHP_EOL; |
||||
echo " will rescan all files of all known users" . PHP_EOL; |
||||
return; |
||||
} |
||||
|
||||
function scanFiles($user) { |
||||
$scanner = new \OC\Files\Utils\Scanner($user); |
||||
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) { |
||||
echo "Scanning $path" . PHP_EOL; |
||||
}); |
||||
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) { |
||||
echo "Scanning $path" . PHP_EOL; |
||||
}); |
||||
$scanner->scan(''); |
||||
} |
||||
|
||||
if ($argv[1] === '--all') { |
||||
$users = OC_User::getUsers(); |
||||
} else { |
||||
$users = array($argv[1]); |
||||
} |
||||
|
||||
foreach ($users as $user) { |
||||
scanFiles($user); |
||||
} |
@ -0,0 +1,34 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
namespace OC\Core\Command; |
||||
|
||||
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; |
||||
|
||||
class Status extends Command { |
||||
protected function configure() { |
||||
$this |
||||
->setName('status') |
||||
->setDescription('show some status information') |
||||
; |
||||
} |
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output) { |
||||
$values = array( |
||||
'installed' => \OC_Config::getValue('installed') ? 'true' : 'false', |
||||
'version' => implode('.', \OC_Util::getVersion()), |
||||
'versionstring' => \OC_Util::getVersionString(), |
||||
'edition' => \OC_Util::getEditionString(), |
||||
); |
||||
print_r($values); |
||||
} |
||||
} |
@ -0,0 +1,9 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
$application->add(new OC\Core\Command\Status); |
Loading…
Reference in new issue