From 10d84f6e9b5a5b001458d12c6b0a489bec1ba00d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Nov 2013 14:12:48 +0100 Subject: [PATCH] Add a (currently) empty system for running common repair steps --- core/command/maintenance/repair.php | 41 +++++++++++++++++++++++++++++ core/register_command.php | 1 + lib/private/repair.php | 21 +++++++++++++++ lib/private/updater.php | 6 ++++- 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 core/command/maintenance/repair.php create mode 100644 lib/private/repair.php diff --git a/core/command/maintenance/repair.php b/core/command/maintenance/repair.php new file mode 100644 index 0000000000..c5ef0c55cc --- /dev/null +++ b/core/command/maintenance/repair.php @@ -0,0 +1,41 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC\Core\Command\Maintenance; + +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class Repair extends Command { + /** + * @var \OC\Repair $repair + */ + protected $repair; + + /** + * @param \OC\Repair $repair + */ + public function __construct($repair) { + $this->repair = $repair; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('maintenance:repair') + ->setDescription('set single user mode'); + } + + protected function execute(InputInterface $input, OutputInterface $output) { + $this->repair->listen('\OC\Repair', 'step', function ($description) use ($output) { + $output->writeln(' - ' . $description); + }); + $this->repair->run(); + } +} diff --git a/core/register_command.php b/core/register_command.php index 1e520e3882..e4f3b12436 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -14,3 +14,4 @@ $application->add(new OC\Core\Command\Maintenance\SingleUser()); $application->add(new OC\Core\Command\App\Disable()); $application->add(new OC\Core\Command\App\Enable()); $application->add(new OC\Core\Command\App\ListApps()); +$application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair())); diff --git a/lib/private/repair.php b/lib/private/repair.php new file mode 100644 index 0000000000..e9de3baa7c --- /dev/null +++ b/lib/private/repair.php @@ -0,0 +1,21 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OC; + +use OC\Hooks\BasicEmitter; + +class Repair extends BasicEmitter { + /** + * run a series of repair steps for common problems + * progress can be reported by emitting \OC\Repair::step events + */ + public function run() { + $this->emit('\OC\Repair', 'step', array('No repair steps configured at the moment')); + } +} diff --git a/lib/private/updater.php b/lib/private/updater.php index a1b07c5a24..764a0f1412 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -37,7 +37,7 @@ class Updater extends BasicEmitter { /** * Check if a new version is available - * @param string $updateUrl the url to check, i.e. 'http://apps.owncloud.com/updater.php' + * @param string $updaterUrl the url to check, i.e. 'http://apps.owncloud.com/updater.php' * @return array | bool */ public function check($updaterUrl) { @@ -116,6 +116,10 @@ class Updater extends BasicEmitter { \OC_App::checkAppsRequirements(); // load all apps to also upgrade enabled apps \OC_App::loadApps(); + + $repair = new Repair(); + $repair->run(); + \OC_Config::setValue('maintenance', false); $this->emit('\OC\Updater', 'maintenanceEnd'); }