Merge pull request #6038 from owncloud/occ-app-enable

add occ commands for enabling and disabling apps
This commit is contained in:
icewind1991 2013-11-25 10:12:49 -08:00
commit 4626fae882
4 changed files with 126 additions and 0 deletions

View file

@ -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);
}
}
}

View file

@ -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');
}
}
}

View file

@ -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);
}
}
}

View file

@ -10,3 +10,6 @@
$application->add(new OC\Core\Command\Status); $application->add(new OC\Core\Command\Status);
$application->add(new OC\Core\Command\Db\GenerateChangeScript()); $application->add(new OC\Core\Command\Db\GenerateChangeScript());
$application->add(new OC\Core\Command\Upgrade()); $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());