summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------3rdparty0
-rw-r--r--apps/files/appinfo/register_command.php9
-rw-r--r--apps/files/command/scan.php73
-rw-r--r--apps/files/console/scan.php31
-rw-r--r--console.php40
-rw-r--r--core/command/status.php34
-rw-r--r--core/register_command.php9
-rw-r--r--lib/base.php1
8 files changed, 137 insertions, 60 deletions
diff --git a/3rdparty b/3rdparty
-Subproject dc87ea630287f27502eba825fbb19fcc33c34c8
+Subproject 98fdc3a4e2f56f7d231470418222162dbf95f46
diff --git a/apps/files/appinfo/register_command.php b/apps/files/appinfo/register_command.php
new file mode 100644
index 00000000000..435ce0ab23f
--- /dev/null
+++ b/apps/files/appinfo/register_command.php
@@ -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()));
diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php
new file mode 100644
index 00000000000..25ab70af362
--- /dev/null
+++ b/apps/files/command/scan.php
@@ -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);
+ }
+ }
+}
diff --git a/apps/files/console/scan.php b/apps/files/console/scan.php
deleted file mode 100644
index 70183fc888a..00000000000
--- a/apps/files/console/scan.php
+++ /dev/null
@@ -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);
-}
diff --git a/console.php b/console.php
index fbe09d9bb68..25b8b312539 100644
--- a/console.php
+++ b/console.php
@@ -1,4 +1,3 @@
-
<?php
/**
* Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl>
@@ -7,6 +6,8 @@
* See the COPYING-README file.
*/
+use Symfony\Component\Console\Application;
+
$RUNTIME_NOAPPS = true;
require_once 'lib/base.php';
@@ -21,32 +22,13 @@ 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 . " <command>" . 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());
+require_once 'core/register_command.php';
+foreach(OC_App::getAllApps() as $app) {
+ $file = OC_App::getAppPath($app).'/appinfo/register_command.php';
+ if(file_exists($file)) {
+ require $file;
+ }
}
+$application->run();
diff --git a/core/command/status.php b/core/command/status.php
new file mode 100644
index 00000000000..ea9825b0f61
--- /dev/null
+++ b/core/command/status.php
@@ -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);
+ }
+}
diff --git a/core/register_command.php b/core/register_command.php
new file mode 100644
index 00000000000..1eed347b7b5
--- /dev/null
+++ b/core/register_command.php
@@ -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);
diff --git a/lib/base.php b/lib/base.php
index d3d570e3f37..395d8486a5e 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -366,6 +366,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');