Skip to content
Snippets Groups Projects
Commit ee247a21 authored by Kamil Domanski's avatar Kamil Domanski
Browse files

shipped apps are no longer hardcoded

parent 37f9e037
No related branches found
No related tags found
No related merge requests found
...@@ -108,7 +108,7 @@ class OC_INSTALLER{ ...@@ -108,7 +108,7 @@ class OC_INSTALLER{
$basedir=$SERVERROOT.'/apps/'.$info['id']; $basedir=$SERVERROOT.'/apps/'.$info['id'];
//check if an app with the same id is already installed //check if an app with the same id is already installed
if(self::isInstalled( $info['id'] ))){ if(self::isInstalled( $info['id'] )){
error_log("App already installed"); error_log("App already installed");
OC_HELPER::rmdirr($extractDir); OC_HELPER::rmdirr($extractDir);
if($data['source']=='http'){ if($data['source']=='http'){
...@@ -118,14 +118,14 @@ class OC_INSTALLER{ ...@@ -118,14 +118,14 @@ class OC_INSTALLER{
} }
//check if the destination directory already exists //check if the destination directory already exists
+ if(is_dir($basedir)){ if(is_dir($basedir)){
+ error_log("App's directory already exists"); error_log("App's directory already exists");
+ OC_HELPER::rmdirr($extractDir); OC_HELPER::rmdirr($extractDir);
+ if($data['source']=='http'){ if($data['source']=='http'){
+ unlink($path); unlink($path);
+ } }
+ return false; return false;
+ } }
if(isset($data['pretent']) and $data['pretent']==true){ if(isset($data['pretent']) and $data['pretent']==true){
return false; return false;
......
<?php <?php
include_once( 'installer.php' );
$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3')); $hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3'));
$hasMySQL = is_callable('mysql_connect'); $hasMySQL = is_callable('mysql_connect');
$datadir = OC_CONFIG::getValue('datadir', $SERVERROOT.'/data'); $datadir = OC_CONFIG::getValue('datadir', $SERVERROOT.'/data');
...@@ -31,7 +33,6 @@ else { ...@@ -31,7 +33,6 @@ else {
class OC_SETUP { class OC_SETUP {
public static function install($options) { public static function install($options) {
global $SERVERROOT;
$error = array(); $error = array();
$dbtype = $options['dbtype']; $dbtype = $options['dbtype'];
...@@ -134,21 +135,8 @@ class OC_SETUP { ...@@ -134,21 +135,8 @@ class OC_SETUP {
OC_GROUP::createGroup('admin'); OC_GROUP::createGroup('admin');
OC_GROUP::addToGroup($username, 'admin'); OC_GROUP::addToGroup($username, 'admin');
foreach( array( "files_imageviewer", "files_publiclink" ) as $app ){ //guess what this does
self::installShippedApps();
if(is_file("$SERVERROOT/apps/$app/appinfo/database.xml")){
OC_DB::createDbFromStructure("$SERVERROOT/apps/$app/appinfo/database.xml");
}
//run appinfo/install.php
if(is_file("$SERVERROOT/apps/$app/appinfo/install.php")){
include("$SERVERROOT/apps/$app/appinfo/install.php");
}
$info=OC_APP::getAppInfo("$SERVERROOT/apps/$app/appinfo/info.xml");
OC_APPCONFIG::setValue($app,'installed_version',$info['version']);
OC_APPCONFIG::setValue($app,'enabled','yes');
}
//create htaccess files for apache hosts //create htaccess files for apache hosts
self::createHtaccess(); //TODO detect if apache is used self::createHtaccess(); //TODO detect if apache is used
...@@ -198,6 +186,32 @@ class OC_SETUP { ...@@ -198,6 +186,32 @@ class OC_SETUP {
$content = "deny from all"; $content = "deny from all";
file_put_contents(OC_CONFIG::getValue('datadirectory', $SERVERROOT.'/data').'/.htaccess', $content); file_put_contents(OC_CONFIG::getValue('datadirectory', $SERVERROOT.'/data').'/.htaccess', $content);
} }
private static function installShippedApps(){
global $SERVERROOT;
$dir = opendir( "$SERVERROOT/apps" );
while( false !== ( $filename = readdir( $dir ))){
if( substr( $filename, 0, 1 ) != '.' and is_dir("$SERVERROOT/apps/$filename") ){
if( file_exists( "$SERVERROOT/apps/$filename/appinfo/app.php" )){
if(!OC_INSTALLER::isInstalled($filename)){
//install the database
if(is_file("$SERVERROOT/apps/$filename/appinfo/database.xml")){
OC_DB::createDbFromStructure("$SERVERROOT/apps/$filename/appinfo/database.xml");
}
//run appinfo/install.php
if(is_file("$SERVERROOT/apps/$filename/appinfo/install.php")){
include("$SERVERROOT/apps/$filename/appinfo/install.php");
}
$info=OC_APP::getAppInfo("$SERVERROOT/apps/$filename/appinfo/info.xml");
OC_APPCONFIG::setValue($filename,'installed_version',$info['version']);
OC_APPCONFIG::setValue($filename,'enabled','yes');
}
}
}
}
closedir( $dir );
}
} }
?> ?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment