diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-12-11 22:08:01 +0100 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-12-11 22:08:01 +0100 |
commit | a8148fa94a6805ca7c6585e136905d5ec155a102 (patch) | |
tree | dfd5a663c20b7eff00906d48ebf5d41661f4a0a5 /lib | |
parent | 7f1bb5fd780f88e3765046af6777e5420d14829d (diff) | |
download | nextcloud-server-a8148fa94a6805ca7c6585e136905d5ec155a102.tar.gz nextcloud-server-a8148fa94a6805ca7c6585e136905d5ec155a102.zip |
update apps when their version number increases
Diffstat (limited to 'lib')
-rw-r--r-- | lib/app.php | 29 | ||||
-rw-r--r-- | lib/base.php | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/app.php b/lib/app.php index d3d99865762..b017ca7532f 100644 --- a/lib/app.php +++ b/lib/app.php @@ -362,4 +362,33 @@ class OC_App{ } return $apps; } + + /** + * check if any apps need updating and update those + */ + public static function updateApps(){ + // The rest comes here + $apps = OC_Appconfig::getApps(); + foreach( $apps as $app ){ + $installedVersion=OC_Appconfig::getValue($app,'installed_version'); + $appInfo=OC_App::getAppInfo($app); + $currentVersion=$appInfo['version']; + if (version_compare($currentVersion, $installedVersion, '>')) { + OC_App::updateApp($app); + } + } + } + + /** + * update the database for the app and call the update script + * @param string appid + */ + public static function updateApp($appid){ + if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml')){ + OC_DB::updateDbFromStructure(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/database.xml'); + } + if(file_exists(OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php')){ + include OC::$SERVERROOT.'/apps/'.$file.'/appinfo/update.php'; + } + } } diff --git a/lib/base.php b/lib/base.php index de2a7a673d5..548cc09823d 100644 --- a/lib/base.php +++ b/lib/base.php @@ -134,6 +134,8 @@ class OC{ OC_Config::setValue('version',implode('.',OC_Util::getVersion())); } + OC_App::updateApps(); + ini_set('session.cookie_httponly','1;'); session_start(); |