diff --git a/3rdparty b/3rdparty
index dc87ea6302..98fdc3a4e2 160000
--- a/3rdparty
+++ b/3rdparty
@@ -1 +1 @@
-Subproject commit dc87ea630287f27502eba825fbb19fcc33c34c86
+Subproject commit 98fdc3a4e2f56f7d231470418222162dbf95f46a
diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php
new file mode 100644
index 0000000000..fce4f6875d
--- /dev/null
+++ b/apps/files/command/scan.php
@@ -0,0 +1,55 @@
+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 $path");
+ });
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) use ($output) {
+ $output->writeln("Scanning $path");
+ });
+ $scanner->scan('');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ if ($input->getOption('all')) {
+ $users = \OC_User::getUsers();
+ } else {
+ $users = $input->getArgument('user_id');
+ }
+
+ foreach ($users as $user) {
+ $this->scanFiles($user, $output);
+ }
+ }
+}
diff --git a/apps/files/console/scan.php b/apps/files/console/scan.php
deleted file mode 100644
index 70183fc888..0000000000
--- a/apps/files/console/scan.php
+++ /dev/null
@@ -1,31 +0,0 @@
-" . 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);
-}
diff --git a/console.php b/console.php
index fbe09d9bb6..9639f60b7a 100644
--- a/console.php
+++ b/console.php
@@ -7,6 +7,9 @@
* See the COPYING-README file.
*/
+use OC\Core\Command\GreetCommand;
+use Symfony\Component\Console\Application;
+
$RUNTIME_NOAPPS = true;
require_once 'lib/base.php';
@@ -21,32 +24,8 @@ if (!OC::$CLI) {
exit(0);
}
-$self = basename($argv[0]);
-if ($argc <= 1) {
- $argv[1] = "help";
-}
-
-$command = $argv[1];
-array_shift($argv);
-
-switch ($command) {
- case 'files:scan':
- require_once 'apps/files/console/scan.php';
- break;
- case 'status':
- require_once 'status.php';
- break;
- case 'help':
- echo "Usage:" . PHP_EOL;
- echo " " . $self . " " . PHP_EOL;
- echo PHP_EOL;
- echo "Available commands:" . PHP_EOL;
- echo " files:scan -> rescan filesystem" .PHP_EOL;
- echo " status -> show some status information" .PHP_EOL;
- echo " help -> show this help screen" .PHP_EOL;
- break;
- default:
- echo "Unknown command '$command'" . PHP_EOL;
- echo "For available commands type ". $self . " help" . PHP_EOL;
- break;
-}
+$defaults = new OC_Defaults;
+$application = new Application($defaults->getName(), \OC_Util::getVersionString());
+$application->add(new OC\Core\Command\Status);
+$application->add(new OCA\Files\Command\Scan);
+$application->run();
diff --git a/core/command/status.php b/core/command/status.php
new file mode 100644
index 0000000000..601780257e
--- /dev/null
+++ b/core/command/status.php
@@ -0,0 +1,30 @@
+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);
+ }
+}
diff --git a/lib/base.php b/lib/base.php
index b5c12a683f..dfd7cb662f 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -358,6 +358,7 @@ class OC {
self::$loader->registerPrefix('Doctrine\\Common', 'doctrine/common/lib');
self::$loader->registerPrefix('Doctrine\\DBAL', 'doctrine/dbal/lib');
self::$loader->registerPrefix('Symfony\\Component\\Routing', 'symfony/routing');
+ self::$loader->registerPrefix('Symfony\\Component\\Console', 'symfony/console');
self::$loader->registerPrefix('Sabre\\VObject', '3rdparty');
self::$loader->registerPrefix('Sabre_', '3rdparty');
self::$loader->registerPrefix('Patchwork', '3rdparty');