From 2656ac9eeb499010139a922f9db70d1e952a8d21 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 15 Jul 2013 18:07:43 +0200 Subject: [PATCH] non-ajax Upgrade script utility, usable via CLI or wget. Requires PR 4047. --- upgrade.php | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 upgrade.php diff --git a/upgrade.php b/upgrade.php new file mode 100644 index 0000000000..abdff1c9fb --- /dev/null +++ b/upgrade.php @@ -0,0 +1,76 @@ +. +* +*/ + +$RUNTIME_NOAPPS = true; //no apps, yet + +require_once 'lib/base.php'; + +// Don't do anything if ownCloud has not been installed +if(!OC_Config::getValue('installed', false)) { + exit(0); +} + +$br = OC::$CLI ? PHP_EOL : '
'; + +if(OC::checkUpgrade(false)) { + $updater = new \OC\Updater(); + + $updater->listen('\OC\Updater', 'maintenanceStart', function () use ($br) { + echo 'Turned on maintenance mode'.$br; + }); + $updater->listen('\OC\Updater', 'maintenanceEnd', function () use ($br) { + echo 'Turned off maintenance mode'.$br; + }); + $updater->listen('\OC\Updater', 'dbUpgrade', function () use ($br) { + echo 'Updated database'.$br; + }); + $updater->listen('\OC\Updater', 'filecacheStart', function () use ($br) { + echo 'Updating filecache, this may take really long...'.$br; + }); + $updater->listen('\OC\Updater', 'filecacheDone', function () use ($br) { + echo 'Updated filecache'.$br; + }); + $updater->listen('\OC\Updater', 'filecacheProgress', function ($out) + use ($br) { + echo '... ' . $out . '% done ...'.$br; + }); + + $updater->listen('\OC\Updater', 'failure', function ($message) use ($br) { + echo $message.$br; + OC_Config::setValue('maintenance', false); + }); + + $updater->upgrade(); +} else { + if(OC_Config::getValue('maintenance', false)) { + //Possible scenario: ownCloud core is updated but an app failed + echo 'ownCloud is in maintenance mode'.$br; + echo 'Maybe an upgrade is already in process. Please check the ' + . 'logfile (data/owncloud.log). If you want to re-run the ' + . 'upgrade procedure, remove the "maintenance mode" from ' + . 'config.php and call this script again.' + .$br; + } else { + echo 'ownCloud is already latest version'.$br; + } +}