$basedir=$SERVERROOT.'/apps/'.$info['id'];
//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");
OC_HELPER::rmdirr($extractDir);
if($data['source']=='http'){
}
//check if the destination directory already exists
-+ if(is_dir($basedir)){
-+ error_log("App's directory already exists");
-+ OC_HELPER::rmdirr($extractDir);
-+ if($data['source']=='http'){
-+ unlink($path);
-+ }
-+ return false;
-+ }
+ if(is_dir($basedir)){
+ error_log("App's directory already exists");
+ OC_HELPER::rmdirr($extractDir);
+ if($data['source']=='http'){
+ unlink($path);
+ }
+ return false;
+ }
if(isset($data['pretent']) and $data['pretent']==true){
return false;
<?php
+include_once( 'installer.php' );
+
$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3'));
$hasMySQL = is_callable('mysql_connect');
$datadir = OC_CONFIG::getValue('datadir', $SERVERROOT.'/data');
class OC_SETUP {
public static function install($options) {
- global $SERVERROOT;
$error = array();
$dbtype = $options['dbtype'];
OC_GROUP::createGroup('admin');
OC_GROUP::addToGroup($username, 'admin');
- foreach( array( "files_imageviewer", "files_publiclink" ) as $app ){
-
- 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');
- }
+ //guess what this does
+ self::installShippedApps();
//create htaccess files for apache hosts
self::createHtaccess(); //TODO detect if apache is used
$content = "deny from all";
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 );
+ }
}
?>