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){ public static function loadApp($app){
if(is_file(self::getAppPath($app).'/appinfo/app.php')){ if(is_file(self::getAppPath($app).'/appinfo/app.php')){
self::checkUpgrade($app);
require_once( $app.'/appinfo/app.php' ); 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(); $versions = self::getAppVersions();
//ensure files app is installed for upgrades $currentVersion=OC_App::getAppVersion($app);
if(!isset($versions['files'])){ if ($currentVersion) {
$versions['files']='0'; $installedVersion = $versions[$app];
} if (version_compare($currentVersion, $installedVersion, '>')) {
foreach( $versions as $app=>$installedVersion ){ OC_Log::write($app, 'starting app upgrade from '.$installedVersion.' to '.$currentVersion,OC_Log::DEBUG);
$currentVersion=OC_App::getAppVersion($app); OC_App::updateApp($app);
if ($currentVersion) { OC_Appconfig::setValue($app, 'installed_version', OC_App::getAppVersion($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_Config::setValue('version',implode('.',OC_Util::getVersion()));
OC_App::checkAppsRequirements(); OC_App::checkAppsRequirements();
// load all apps to also upgrade enabled apps
OC_App::loadApps();
} }
OC_App::updateApps();
} }
} }