summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authoricewind1991 <robin@icewind.nl>2013-11-25 10:12:49 -0800
committericewind1991 <robin@icewind.nl>2013-11-25 10:12:49 -0800
commit4626fae8827de22f6b4e4ce043e8a1b30c98ca3f (patch)
tree82dc1f5b173a4aeeace0d61617f3408d2c5c35ba /core
parent4b67d4258d4b746673cc31c09c53f8822e2e6afc (diff)
parentabe63bd329e1180173e249f6edbe440a289d809f (diff)
downloadnextcloud-server-4626fae8827de22f6b4e4ce043e8a1b30c98ca3f.tar.gz
nextcloud-server-4626fae8827de22f6b4e4ce043e8a1b30c98ca3f.zip
Merge pull request #6038 from owncloud/occ-app-enable
add occ commands for enabling and disabling apps
Diffstat (limited to 'core')
-rw-r--r--core/command/app/disable.php37
-rw-r--r--core/command/app/enable.php39
-rw-r--r--core/command/app/listapps.php47
-rw-r--r--core/register_command.php3
4 files changed, 126 insertions, 0 deletions
diff --git a/core/command/app/disable.php b/core/command/app/disable.php
new file mode 100644
index 00000000000..dcdee92349e
--- /dev/null
+++ b/core/command/app/disable.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Command\App;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Disable extends Command {
+ protected function configure() {
+ $this
+ ->setName('app:disable')
+ ->setDescription('disable an app')
+ ->addArgument(
+ 'app-id',
+ InputArgument::REQUIRED,
+ 'disable the specified app'
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $appId = $input->getArgument('app-id');
+ if (\OC_App::isEnabled($appId)) {
+ \OC_App::disable($appId);
+ $output->writeln($appId . ' disabled');
+ } else {
+ $output->writeln('No such app enabled: ' . $appId);
+ }
+ }
+}
diff --git a/core/command/app/enable.php b/core/command/app/enable.php
new file mode 100644
index 00000000000..f08546602ee
--- /dev/null
+++ b/core/command/app/enable.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Command\App;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Enable extends Command {
+ protected function configure() {
+ $this
+ ->setName('app:enable')
+ ->setDescription('enable an app')
+ ->addArgument(
+ 'app-id',
+ InputArgument::REQUIRED,
+ 'enable the specified app'
+ );
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $appId = $input->getArgument('app-id');
+ if (\OC_App::isEnabled($appId)) {
+ $output->writeln($appId . ' is already enabled');
+ } else if (!\OC_App::getAppPath($appId)) {
+ $output->writeln($appId . ' not found');
+ } else {
+ \OC_App::enable($appId);
+ $output->writeln($appId . ' enabled');
+ }
+ }
+}
diff --git a/core/command/app/listapps.php b/core/command/app/listapps.php
new file mode 100644
index 00000000000..dc471c5453a
--- /dev/null
+++ b/core/command/app/listapps.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Core\Command\App;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class ListApps extends Command {
+ protected function configure() {
+ $this
+ ->setName('app:list')
+ ->setDescription('List all available apps');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $apps = \OC_App::getAllApps();
+ $enabledApps = array();
+ $disabledApps = array();
+
+ //sort enabled apps above disabled apps
+ foreach ($apps as $app) {
+ if (\OC_App::isEnabled($app)) {
+ $enabledApps[] = $app;
+ } else {
+ $disabledApps[] = $app;
+ }
+ }
+
+ sort($enabledApps);
+ sort($disabledApps);
+ $output->writeln('Enabled:');
+ foreach ($enabledApps as $app) {
+ $output->writeln(' - ' . $app);
+ }
+ $output->writeln('Disabled:');
+ foreach ($disabledApps as $app) {
+ $output->writeln(' - ' . $app);
+ }
+ }
+}
diff --git a/core/register_command.php b/core/register_command.php
index cfea1a6b888..144dcd3dc5d 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -10,3 +10,6 @@
$application->add(new OC\Core\Command\Status);
$application->add(new OC\Core\Command\Db\GenerateChangeScript());
$application->add(new OC\Core\Command\Upgrade());
+$application->add(new OC\Core\Command\App\Disable());
+$application->add(new OC\Core\Command\App\Enable());
+$application->add(new OC\Core\Command\App\ListApps());