summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-12-11 22:08:01 +0100
committerRobin Appelman <icewind1991@gmail.com>2011-12-11 22:08:01 +0100
commita8148fa94a6805ca7c6585e136905d5ec155a102 (patch)
treedfd5a663c20b7eff00906d48ebf5d41661f4a0a5 /lib
parent7f1bb5fd780f88e3765046af6777e5420d14829d (diff)
downloadnextcloud-server-a8148fa94a6805ca7c6585e136905d5ec155a102.tar.gz
nextcloud-server-a8148fa94a6805ca7c6585e136905d5ec155a102.zip
update apps when their version number increases
Diffstat (limited to 'lib')
-rw-r--r--lib/app.php29
-rw-r--r--lib/base.php2
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();