/** * function for installing coscms from a profile */ function cos_install($options = false) { // we need a profile specified if (!isset($options['profile'])) { common::abort('You need to specifiy a profile'); } // create files - logs/ - files/ cos_create_files(); // drop database drop_db_default($ary = array('silence' => 1)); // create database create_db(); // load default base sql. load_db_default(); // Set up profile to install $pro = new profile(); $pro->setProfileInfo($options['profile']); // install all the profile modules foreach ($pro->profileModules as $key => $val) { // check if master is specified. Else use profile version if (conf::getMainIni('git_use_master')) { $tag = 'master'; } else { $tag = $val['module_version']; } $options['repo'] = $val['public_clone_url']; $options['version'] = $tag; //$val['module_version']; $options['module'] = $val['module_name']; // check out and install cos_git_install($options, 'module'); } // install templates foreach ($pro->profileTemplates as $key => $val) { if (conf::getMainIni('git_use_master')) { $tag = 'master'; } else { $tag = $val['module_version']; } $options['repo'] = $val['public_clone_url']; $options['version'] = $tag; //$val['module_version']; $options['template'] = $val['module_name']; // check out and install cos_git_install($options, 'template'); } // load all profile ini files $pro->loadProfileFiles($options['profile']); // set template $pro->setProfileTemplate(); }
/** * * @param type $options array ('profile' => 'default', 'clone_only' => false) */ function upgrade_from_profile($options) { $pro = new profile(); $pro->setProfileInfo($options['profile']); // Upgrade modules foreach ($pro->profileModules as $key => $val) { $val['repo'] = $val['public_clone_url']; $val['version'] = $val['module_version']; if (isset(conf::$vars['profile_use_master'])) { $val['version'] = 'master'; } $val['module'] = $val['module_name']; $module = new moduleinstaller(); $module->setInstallInfo($val); if ($module->isInstalled($val['module_name'])) { cos_git_upgrade($val, $val['version'], 'module'); } else { if (isset($options['clone_only'])) { cos_git_clone($val, 'module'); } else { cos_git_install($val, 'module'); } } } // install templates foreach ($pro->profileTemplates as $key => $val) { $val['repo'] = $val['public_clone_url']; $val['version'] = $val['module_version']; if (isset(conf::$vars['profile_use_master'])) { $val['version'] = 'master'; } // No DB operations. Only clone to specific version. if (isset($options['clone_only'])) { cos_git_clone($val, 'template'); } else { cos_git_install($val, 'template'); } } }