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; + } +}