Move app upgrade check to loading of apps

This commit is contained in:
Bart Visscher 2012-06-26 20:41:11 +02:00
parent a25ae4b4b6
commit 2f0b4983e9
2 changed files with 12 additions and 16 deletions

View File

@ -84,6 +84,7 @@ class OC_App{
*/
public static function loadApp($app){
if(is_file(self::getAppPath($app).'/appinfo/app.php')){
self::checkUpgrade($app);
require_once( $app.'/appinfo/app.php' );
}
}
@ -526,22 +527,17 @@ class OC_App{
}
/**
* check if any apps need updating and update those
* check if the app need updating and update when needed
*/
public static function updateApps(){
public static function checkUpgrade($app) {
$versions = self::getAppVersions();
//ensure files app is installed for upgrades
if(!isset($versions['files'])){
$versions['files']='0';
}
foreach( $versions as $app=>$installedVersion ){
$currentVersion=OC_App::getAppVersion($app);
if ($currentVersion) {
if (version_compare($currentVersion, $installedVersion, '>')) {
OC_Log::write($app, 'starting app upgrade from '.$installedVersion.' to '.$currentVersion,OC_Log::DEBUG);
OC_App::updateApp($app);
OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($app));
}
$currentVersion=OC_App::getAppVersion($app);
if ($currentVersion) {
$installedVersion = $versions[$app];
if (version_compare($currentVersion, $installedVersion, '>')) {
OC_Log::write($app, 'starting app upgrade from '.$installedVersion.' to '.$currentVersion,OC_Log::DEBUG);
OC_App::updateApp($app);
OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($app));
}
}
}

View File

@ -208,9 +208,9 @@ class OC{
OC_Config::setValue('version',implode('.',OC_Util::getVersion()));
OC_App::checkAppsRequirements();
// load all apps to also upgrade enabled apps
OC_App::loadApps();
}
OC_App::updateApps();
}
}