Use hooks to send updates from apps
This commit is contained in:
parent
7505837079
commit
e7eea3dd2e
|
@ -5,7 +5,11 @@ require_once '../../lib/base.php';
|
||||||
|
|
||||||
if (OC::checkUpgrade(false)) {
|
if (OC::checkUpgrade(false)) {
|
||||||
$updateEventSource = new OC_EventSource();
|
$updateEventSource = new OC_EventSource();
|
||||||
$updateEventSource->send('success', 'Turned on maintenance mode');
|
$watcher = new UpdateWatcher($updateEventSource);
|
||||||
|
OC_Hook::connect('update', 'success', $watcher, 'success');
|
||||||
|
OC_Hook::connect('update', 'error', $watcher, 'error');
|
||||||
|
OC_Hook::connect('update', 'error', $watcher, 'failure');
|
||||||
|
$watcher->success('Turned on maintenance mode');
|
||||||
// Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions
|
// Check if the .htaccess is existing - this is needed for upgrades from really old ownCloud versions
|
||||||
if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) {
|
if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) {
|
||||||
if (!OC_Util::ishtaccessworking()) {
|
if (!OC_Util::ishtaccessworking()) {
|
||||||
|
@ -16,11 +20,9 @@ if (OC::checkUpgrade(false)) {
|
||||||
}
|
}
|
||||||
$result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml');
|
$result = OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/db_structure.xml');
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
$updateEventSource->send('failure', 'Error updating database');
|
$watcher->failure('Error updating database');
|
||||||
$updateEventSource->close();
|
|
||||||
die();
|
|
||||||
}
|
}
|
||||||
$updateEventSource->send('success', 'Updated database');
|
$watcher->success('Updated database');
|
||||||
$minimizerCSS = new OC_Minimizer_CSS();
|
$minimizerCSS = new OC_Minimizer_CSS();
|
||||||
$minimizerCSS->clearCache();
|
$minimizerCSS->clearCache();
|
||||||
$minimizerJS = new OC_Minimizer_JS();
|
$minimizerJS = new OC_Minimizer_JS();
|
||||||
|
@ -30,7 +32,43 @@ if (OC::checkUpgrade(false)) {
|
||||||
// load all apps to also upgrade enabled apps
|
// load all apps to also upgrade enabled apps
|
||||||
OC_App::loadApps();
|
OC_App::loadApps();
|
||||||
OC_Config::setValue('maintenance', false);
|
OC_Config::setValue('maintenance', false);
|
||||||
$updateEventSource->send('success', 'Turned off maintenance mode');
|
$watcher->success('Turned off maintenance mode');
|
||||||
$updateEventSource->send('done', 'done');
|
$watcher->done();
|
||||||
$updateEventSource->close();
|
}
|
||||||
|
|
||||||
|
class UpdateWatcher {
|
||||||
|
/**
|
||||||
|
* @var \OC_EventSource $eventSource;
|
||||||
|
*/
|
||||||
|
private $eventSource;
|
||||||
|
|
||||||
|
public function __construct($eventSource) {
|
||||||
|
$this->eventSource = $eventSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function success($message) {
|
||||||
|
OC_Util::obEnd();
|
||||||
|
$this->eventSource->send('success', $message);
|
||||||
|
ob_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function error($message) {
|
||||||
|
OC_Util::obEnd();
|
||||||
|
$this->eventSource->send('error', $message);
|
||||||
|
ob_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function failure($message) {
|
||||||
|
OC_Util::obEnd();
|
||||||
|
$this->eventSource->send('failure', $message);
|
||||||
|
$this->eventSource->close();
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function done() {
|
||||||
|
OC_Util::obEnd();
|
||||||
|
$this->eventSource->send('done', '');
|
||||||
|
$this->eventSource->close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -642,6 +642,7 @@ class OC_App{
|
||||||
echo 'Failed to upgrade "'.$app.'". Exception="'.$e->getMessage().'"';
|
echo 'Failed to upgrade "'.$app.'". Exception="'.$e->getMessage().'"';
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
|
OC_Hook::emit('update', 'success', 'Updated '.$app.' app');
|
||||||
OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($app));
|
OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($app));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue