public function run() { try { $tempPath = \Jelix\Core\App::tempBasePath(); if ($tempPath == DIRECTORY_SEPARATOR || $tempPath == '' || $tempPath == '/') { echo "Error: bad path in \\Jelix\\Core\\App::tempBasePath(), it is equals to '" . $tempPath . "' !!\n"; echo " Jelix cannot clear the content of the temp directory.\n"; echo " Correct the path in your application.init.php or create the corresponding directory\n"; exit(1); } if (!jFile::removeDir($tempPath, false, array('.svn', '.dummy'))) { echo "Some temp files were not removed\n"; } else { if ($this->verbose()) { echo "All temp files have been removed\n"; } } } catch (Exception $e) { if ($this->config->helpLang == 'fr') { echo "Un ou plusieurs répertoires n'ont pas pu être supprimés.\n" . "Message d'erreur : " . $e->getMessage() . "\n"; } else { echo "One or more directories couldn't be deleted.\n" . "Error: " . $e->getMessage() . "\n"; } } }
static function checkTempPath() { $tempBasePath = \Jelix\Core\App::tempBasePath(); // we always clean the temp directory. But first, let's check the temp path (see ticket #840)... if ($tempBasePath == DIRECTORY_SEPARATOR || $tempBasePath == '' || $tempBasePath == '/') { throw new \Exception("Error: bad path in \\Jelix\\Core\\App::tempBasePath(), it is equals to '" . $tempBasePath . "' !!\n" . " Jelix cannot clear the content of the temp directory.\n" . " Correct the path for the temp directory or create the directory you\n" . " indicated with \\Jelix\\Core\\App in your application.init.php.\n"); } \jFile::removeDir(\Jelix\Core\App::tempPath(), false, array('.svn', '.dummy')); }
public function run() { $paths = array(); $paths[] = \Jelix\Core\App::tempBasePath(); $paths[] = \Jelix\Core\App::logPath(); $paths[] = \Jelix\Core\App::varPath('mails'); $paths[] = \Jelix\Core\App::varPath('db'); foreach ($paths as $path) { $this->setRights($path); } }
protected function execute(InputInterface $input, OutputInterface $output) { $paths = array(); $paths[] = \Jelix\Core\App::tempBasePath(); $paths[] = \Jelix\Core\App::logPath(); $paths[] = \Jelix\Core\App::varPath('mails'); $paths[] = \Jelix\Core\App::varPath('db'); foreach ($paths as $path) { $this->setRights($path); } }
public function run() { \Jelix\Core\AppManager::close(); $module = $this->getParam('module'); $modulesList = $this->getParam('...', array()); array_unshift($modulesList, $module); $parameters = $this->getOption('-p'); if ($parameters && count($modulesList) > 1) { throw new Exception('Parameters are for only one module'); } if ($parameters) { $params = explode(';', $parameters); $parameters = array(); foreach ($params as $param) { $kp = explode("=", $param); if (count($kp) > 1) { $parameters[$kp[0]] = $kp[1]; } else { $parameters[$kp[0]] = true; } } } if ($this->verbose()) { $reporter = new \Jelix\Installer\Reporter\Console(); } else { $reporter = new \Jelix\Installer\Reporter\Console('error'); } $installer = new \Jelix\Installer\Installer($reporter); if ($this->allEntryPoint) { if ($parameters) { $installer->setModuleParameters($modulesList[0], $parameters); } $installer->installModules($modulesList); } else { if ($parameters) { $installer->setModuleParameters($modulesList[0], $parameters, $this->entryPointName); } $installer->installModules($modulesList, $this->entryPointName); } try { \Jelix\Core\AppManager::clearTemp(\Jelix\Core\App::tempBasePath()); } catch (Exception $e) { if ($e->getCode() == 2) { echo "Error: bad path in \\Jelix\\Core\\App::tempBasePath(), it is equals to '" . \Jelix\Core\App::tempBasePath() . "' !!\n"; echo " Jelix cannot clear the content of the temp directory.\n"; echo " you must clear it your self.\n"; echo " Correct the path in application.init.php or create the directory\n"; } else { echo "Error: " . $e->getMessage(); } } \Jelix\Core\AppManager::open(); }
protected function _execute(InputInterface $input, OutputInterface $output) { require_once JELIX_LIB_PATH . 'installer/jInstaller.class.php'; \Jelix\Core\AppManager::close(); $module = $input->getArgument('module'); $parameters = $input->getOption('parameters'); if ($parameters) { $params = explode(';', $parameters); $parameters = array(); foreach ($params as $param) { $kp = explode("=", $param); if (count($kp) > 1) { $parameters[$kp[0]] = $kp[1]; } else { $parameters[$kp[0]] = true; } } } if ($this->verbose()) { $reporter = new \Jelix\Installer\Reporter\Console(); } else { $reporter = new \Jelix\Installer\Reporter\Console('error'); } $installer = new \Jelix\Installer\Installer($reporter); if ($this->allEntryPoint) { if ($parameters) { $installer->setModuleParameters($module, $parameters); } $installer->installModules(array($module)); } else { if ($parameters) { $installer->setModuleParameters($module, $parameters, $this->entryPointName); } $installer->installModules(array($module), $this->entryPointName); } try { \Jelix\Core\AppManager::clearTemp(\jApp::tempBasePath()); } catch (\Exception $e) { if ($e->getCode() == 2) { $output->writeln("Error: bad path in \\Jelix\\Core\\App::tempBasePath(), it is equals to '" . App::tempBasePath() . "' !!"); $output->writeln(" Jelix cannot clear the content of the temp directory."); $output->writeln(" you must clear it your self."); $output->writeln(" Correct the path in application.init.php or create the directory"); } else { $output->writeln("<error>Error: " . $e->getMessage() . "</error>"); } } \Jelix\Core\AppManager::open(); }
protected function execute(InputInterface $input, OutputInterface $output) { try { $tempPath = \Jelix\Core\App::tempBasePath(); if ($tempPath == DIRECTORY_SEPARATOR || $tempPath == '' || $tempPath == '/') { $output->writeln("<error>Error: bad path in jApp::tempBasePath(), it is equals to '" . $tempPath . "' !!</error>"); $output->writeln(" Jelix cannot clear the content of the temp directory."); $output->writeln(" Correct the path in your application.init.php or create the corresponding directory"); return 1; } if (!\jFile::removeDir($tempPath, false, array('.svn', '.git', '.dummy'))) { $output->writeln("Some temp files were not removed"); } else { if ($output->isVerbose()) { $output->writeln("All temp files have been removed"); } } } catch (\Exception $e) { $output->writeln("One or more directories couldn't be deleted."); $output->writeln("<error>Error: " . $e->getMessage() . "</error>"); return 2; } }
protected function _execute(InputInterface $input, OutputInterface $output) { \Jelix\Core\AppManager::close(); if ($this->verbose()) { $reporter = new \Jelix\Installer\Reporter\Console('notice', 'Low-level migration'); } else { $reporter = new \Jelix\Installer\Reporter\Console('error', 'Low-level migration'); } // launch the low-level migration $migrator = new \Jelix\Installer\Migration($reporter); $migrator->migrate(); // we can now launch the installer/updater if ($this->verbose()) { $reporter = new \Jelix\Installer\Reporter\Console(); } else { $reporter = new \Jelix\Installer\Reporter\Console('error'); } $installer = new \Jelix\Installer\Installer($reporter); if ($input->getOption('entry-point')) { $installer->installEntryPoint($this->entryPointId); } else { $installer->installApplication(); } try { \Jelix\Core\AppManager::clearTemp(\Jelix\Core\App::tempBasePath()); } catch (\Exception $e) { if ($e->getCode() == 2) { $output->writeln("<error>Error: bad path in jApp::tempBasePath(), it is equals to '" . jApp::tempBasePath() . "' !!</error>"); $output->writeln(" Jelix cannot clear the content of the temp directory."); $output->writeln(" you must clear it your self."); $output->writeln(" Correct the path in the application.init.php or create the directory"); } else { $output->writeln("<error>Error: " . $e->getMessage() . "</error>"); } } \Jelix\Core\AppManager::open(); }
public function run() { \Jelix\Core\AppManager::close(); if ($this->verbose()) { $reporter = new \Jelix\Installer\Reporter\Console(); } else { $reporter = new \Jelix\Installer\Reporter\Console('error'); } $installer = new \Jelix\Installer\Installer($reporter); $installer->installApplication(); try { \Jelix\Core\AppManager::clearTemp(\Jelix\Core\App::tempBasePath()); } catch (Exception $e) { if ($e->getCode() == 2) { echo "Error: bad path in use \\Jelix\\Core\\App::tempBasePath(), it is equals to '" . \Jelix\Core\App::tempBasePath() . "' !!\n"; echo " Jelix cannot clear the content of the temp directory.\n"; echo " you must clear it your self.\n"; echo " Correct the path in the application.init.php or create the directory\n"; } else { echo "Error: " . $e->getMessage(); } } \Jelix\Core\AppManager::open(); }
function checkAppPaths() { $ok = true; if (!defined('JELIX_LIB_PATH') || !App::isInit()) { throw new \Exception($this->messages->get('path.core')); } if (!file_exists(App::tempBasePath()) || !is_writable(App::tempBasePath())) { $this->error('path.temp'); $ok = false; } if (!file_exists(App::logPath()) || !is_writable(App::logPath())) { $this->error('path.log'); $ok = false; } if (!file_exists(App::varPath())) { $this->error('path.var'); $ok = false; } if (!file_exists(App::appConfigPath())) { $this->error('path.config'); $ok = false; } if (!file_exists(App::configPath())) { $this->error('path.config'); $ok = false; } elseif ($this->checkForInstallation) { if (!is_writable(App::configPath())) { $this->error('path.config.writable'); $ok = false; } if (file_exists(App::configPath('profiles.ini.php')) && !is_writable(App::configPath('profiles.ini.php'))) { $this->error('path.profiles.writable'); $ok = false; } if (file_exists(App::configPath('installer.ini.php')) && !is_writable(App::configPath('installer.ini.php'))) { $this->error('path.installer.writable'); $ok = false; } } if (!file_exists(App::wwwPath())) { $this->error('path.www'); $ok = false; } foreach ($this->otherPaths as $path) { $realPath = \jFile::parseJelixPath($path); if (!file_exists($realPath)) { $this->error('path.custom.not.exists', array($path)); $ok = false; } else { if (!is_writable($realPath)) { $this->error('path.custom.writable', array($path)); $ok = false; } else { $this->ok('path.custom.ok', array($path)); } } } if ($ok) { $this->ok('paths.ok'); } else { throw new \Exception($this->messages->get('too.critical.error')); } return $ok; }
/** * read the ini file given to the constructor. It Merges it with the content of * mainconfig.ini.php. It also calculates some options. * If you are in a CLI script but you want to load a configuration file for a web * entry point or vice-versa, you need to indicate the $pseudoScriptName parameter * with the name of the entry point * @param boolean $allModuleInfo may be true for the installer, which needs all informations * else should be false, these extra informations are * not needed to run the application * @param array $additionalOptions some options to add to the configuration * * @return StdClass an object which contains configuration values */ public function read($allModuleInfo = false, $additionalOptions = null) { $tempPath = App::tempBasePath(); if ($tempPath == '/') { // if it equals to '/', this is because realpath has returned false in the application.init.php // so this is because the path doesn't exist. throw new Exception('Application temp directory doesn\'t exist !', 3); } if (!is_writable($tempPath)) { throw new Exception('Application temp base directory is not writable -- (' . $tempPath . ')', 4); } if (!is_writable(App::logPath())) { throw new Exception('Application log directory is not writable -- (' . App::logPath() . ')', 4); } $this->config = $this->readConfigFiles($this->configFileName, $additionalOptions); $this->prepareConfig($allModuleInfo); return $this->config; }
public static function tempBasePath() { return \Jelix\Core\App::tempBasePath(); }
protected function _createSkeleton($appPath, $appName, $wwwpath, InputInterface $input) { $this->createDir($appPath); $this->createDir(App::tempBasePath()); $this->createDir($wwwpath); $varPath = App::varPath(); $configPath = App::configPath(); $this->createDir($varPath); $this->createDir(App::logPath()); $this->createDir(App::appConfigPath()); $this->createDir($configPath); $this->createDir(App::appConfigPath('index/')); $this->createDir(App::appPath('app/overloads/')); $this->createDir(App::appPath('app/themes')); $this->createDir(App::appPath('app/themes/default/')); $this->createDir($varPath . 'uploads/'); $this->createDir($varPath . 'sessions/'); $this->createDir($varPath . 'mails/'); $this->createDir($appPath . 'install'); $this->createDir($appPath . 'modules'); $this->createDir($appPath . 'plugins'); $this->createDir(App::appPath('app/responses')); $this->createDir($appPath . 'tests'); $this->createDir(App::scriptsPath()); $param = array(); if ($input->getOption('nodefaultmodule')) { $param['tplname'] = 'jelix~defaultmain'; $param['modulename'] = 'jelix'; } else { $moduleName = $input->getOption('modulename'); if (!$moduleName) { // note: since module name are used for name of generated name, // only this characters are allowed $moduleName = preg_replace('/([^a-zA-Z_0-9])/', '_', $appName); } $param['modulename'] = $moduleName; $param['tplname'] = $moduleName . '~main'; } $param['config_file'] = 'index/config.ini.php'; $param['rp_temp'] = Path::shortestPath($appPath, App::tempBasePath()) . '/'; $param['rp_var'] = Path::shortestPath($appPath, App::varPath()) . '/'; $param['rp_log'] = Path::shortestPath($appPath, App::logPath()) . '/'; $param['rp_conf'] = Path::shortestPath($appPath, $configPath) . '/'; $param['rp_www'] = Path::shortestPath($appPath, $wwwpath) . '/'; $param['rp_cmd'] = Path::shortestPath($appPath, App::scriptsPath()) . '/'; $param['rp_jelix'] = Path::shortestPath($appPath, JELIX_LIB_PATH) . '/'; $param['rp_lib'] = Path::shortestPath($appPath, LIB_PATH) . '/'; $param['rp_vendor'] = ''; foreach (array(LIB_PATH . 'vendor/', LIB_PATH . '../vendor/', LIB_PATH . '../../../') as $path) { if (file_exists($path)) { $param['rp_vendor'] = Path::shortestPath($appPath, realpath($path) . '/') . '/'; break; } } $param['rp_app'] = Path::shortestPath($wwwpath, $appPath) . '/'; $this->createFile(App::logPath() . '.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'mails/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'sessions/.dummy', 'dummy.tpl', array()); $this->createFile(App::appPath() . 'app/overloads/.dummy', 'dummy.tpl', array()); $this->createFile(App::appPath() . 'app/themes/default/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'uploads/.dummy', 'dummy.tpl', array()); $this->createFile($appPath . 'plugins/.dummy', 'dummy.tpl', array()); $this->createFile(App::scriptsPath() . '.dummy', 'dummy.tpl', array()); $this->createFile(App::tempBasePath() . '.dummy', 'dummy.tpl', array()); $this->createFile($appPath . '.htaccess', 'htaccess_deny', $param, "Configuration file for Apache"); $this->createFile($appPath . '.gitignore', 'git_ignore.tpl', $param, ".gitignore"); $this->createFile($appPath . 'jelix-app.json', 'jelix-app.json.tpl', $param, "Project description file"); $this->createFile($appPath . 'composer.json', 'composer.json.tpl', $param, "Composer file"); $this->createFile($appPath . 'cmd.php', 'cmd.php.tpl', $param, "Script for developer commands"); $this->createFile(App::appConfigPath('mainconfig.ini.php'), 'app/config/mainconfig.ini.php.tpl', $param, "Main configuration file"); $this->createFile($configPath . 'localconfig.ini.php.dist', 'var/config/localconfig.ini.php.tpl', $param, "Configuration file for specific environment"); $this->createFile($configPath . 'profiles.ini.php', 'var/config/profiles.ini.php.tpl', $param, "Profiles file"); $this->createFile($configPath . 'profiles.ini.php.dist', 'var/config/profiles.ini.php.tpl', $param, "Profiles file for your repository"); $this->createFile($configPath . 'preferences.ini.php', 'var/config/preferences.ini.php.tpl', $param, "Preferences file"); $this->createFile(App::appConfigPath('urls.xml'), 'app/config/urls.xml.tpl', $param, "URLs mapping file"); $this->createFile(App::appConfigPath('index/config.ini.php'), 'app/config/index/config.ini.php.tpl', $param, "Entry point configuration file"); $this->createFile($appPath . 'app/responses/myHtmlResponse.class.php', 'app/responses/myHtmlResponse.class.php.tpl', $param, "Main response class"); $this->createFile($appPath . 'install/installer.php', 'installer/installer.php.tpl', $param, "Installer script"); $this->createFile($appPath . 'tests/runtests.php', 'tests/runtests.php', $param, "Tests script"); $temp = dirname(rtrim(App::tempBasePath(), '/')); if ($temp != rtrim($appPath, '/')) { if (file_exists($temp . '/.gitignore')) { $gitignore = file_get_contents($temp . '/.gitignore') . "\n" . $appName . "/*\n"; file_put_contents($temp . '/.gitignore', $gitignore); } else { file_put_contents($temp . '/.gitignore', $appName . "/*\n"); } } else { $gitignore = file_get_contents($appPath . '.gitignore') . "\n" . basename(rtrim(App::tempBasePath(), '/')) . "/*\n"; file_put_contents($appPath . '.gitignore', $gitignore); } $this->createFile($wwwpath . 'index.php', 'www/index.php.tpl', $param, "Main entry point"); $this->createFile($wwwpath . '.htaccess', 'htaccess_allow', $param, "Configuration file for Apache"); $param['php_rp_temp'] = $this->convertRp($param['rp_temp']); $param['php_rp_var'] = $this->convertRp($param['rp_var']); $param['php_rp_log'] = $this->convertRp($param['rp_log']); $param['php_rp_conf'] = $this->convertRp($param['rp_conf']); $param['php_rp_www'] = $this->convertRp($param['rp_www']); $param['php_rp_cmd'] = $this->convertRp($param['rp_cmd']); $param['php_rp_jelix'] = $this->convertRp($param['rp_jelix']); if ($param['rp_vendor']) { $param['php_rp_vendor'] = $this->convertRp($param['rp_vendor']); $this->createFile($appPath . 'application.init.php', 'application2.init.php.tpl', $param, "Bootstrap file"); } else { $this->createFile($appPath . 'application.init.php', 'application.init.php.tpl', $param, "Bootstrap file"); } return $param; }
public function run() { $appPath = $this->getParam('path'); $appPath = $this->getRealPath($appPath); $appName = basename($appPath); $appPath .= '/'; if (file_exists($appPath . '/jelix-app.json') || file_exists($appPath . '/project.xml')) { throw new Exception("this application is already created"); } $this->config = JelixScript::loadConfig($appName); $this->config->infoWebsite = $this->config->newAppInfoWebsite; $this->config->infoLicence = $this->config->newAppInfoLicence; $this->config->infoLicenceUrl = $this->config->newAppInfoLicenceUrl; $this->config->infoLocale = $this->config->newAppInfoLocale; $this->config->infoCopyright = $this->config->newAppInfoCopyright; $this->config->initAppPaths($appPath); App::setEnv('jelix-scripts'); JelixScript::checkTempPath(); if ($p = $this->getOption('-wwwpath')) { $wwwpath = path::real($appPath . $p, false) . '/'; } else { $wwwpath = App::wwwPath(); } $this->createDir($appPath); $this->createDir(App::tempBasePath()); $this->createDir($wwwpath); $varPath = App::varPath(); $configPath = App::configPath(); $this->createDir($varPath); $this->createDir(App::logPath()); $this->createDir($configPath); $this->createDir($configPath . 'index/'); $this->createDir($varPath . 'overloads/'); $this->createDir($varPath . 'themes/'); $this->createDir($varPath . 'themes/default/'); $this->createDir($varPath . 'uploads/'); $this->createDir($varPath . 'sessions/'); $this->createDir($varPath . 'mails/'); $this->createDir($appPath . 'install'); $this->createDir($appPath . 'modules'); $this->createDir($appPath . 'plugins'); $this->createDir($appPath . 'responses'); $this->createDir($appPath . 'tests'); $this->createDir(App::scriptsPath()); $param = array(); if ($this->getOption('-nodefaultmodule')) { $param['tplname'] = 'jelix~defaultmain'; $param['modulename'] = 'jelix'; } else { $moduleName = $this->getOption('-modulename'); if (!$moduleName) { // note: since module name are used for name of generated name, // only this characters are allowed $moduleName = preg_replace('/([^a-zA-Z_0-9])/', '_', $appName); } $param['modulename'] = $moduleName; $param['tplname'] = $moduleName . '~main'; } $param['config_file'] = 'index/config.ini.php'; $param['rp_temp'] = $this->getRelativePath($appPath, App::tempBasePath()); $param['rp_var'] = $this->getRelativePath($appPath, App::varPath()); $param['rp_log'] = $this->getRelativePath($appPath, App::logPath()); $param['rp_conf'] = $this->getRelativePath($appPath, $configPath); $param['rp_www'] = $this->getRelativePath($appPath, $wwwpath); $param['rp_cmd'] = $this->getRelativePath($appPath, App::scriptsPath()); $param['rp_jelix'] = $this->getRelativePath($appPath, JELIX_LIB_PATH); $param['rp_vendor'] = ''; foreach (array(LIB_PATH . 'vendor/', LIB_PATH . '../vendor/', LIB_PATH . '../../../') as $path) { if (file_exists($path)) { $param['rp_vendor'] = $this->getRelativePath($appPath, realpath($path) . '/'); break; } } $param['rp_app'] = $this->getRelativePath($wwwpath, $appPath); $this->createFile(App::logPath() . '.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'mails/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'sessions/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'overloads/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'themes/default/.dummy', 'dummy.tpl', array()); $this->createFile(App::varPath() . 'uploads/.dummy', 'dummy.tpl', array()); $this->createFile($appPath . 'plugins/.dummy', 'dummy.tpl', array()); $this->createFile(App::scriptsPath() . '.dummy', 'dummy.tpl', array()); $this->createFile(App::tempBasePath() . '.dummy', 'dummy.tpl', array()); $this->createFile($appPath . '.htaccess', 'htaccess_deny', $param, "Configuration file for Apache"); $this->createFile($appPath . '.gitignore', 'git_ignore.tpl', $param, ".gitignore"); $this->createFile($appPath . 'jelix-app.json', 'jelix-app.json.tpl', $param, "Project description file"); $this->createFile($appPath . 'composer.json', 'composer.json.tpl', $param, "Composer file"); $this->createFile($appPath . 'cmd.php', 'cmd.php.tpl', $param, "Script for developer commands"); $this->createFile($configPath . 'mainconfig.ini.php', 'var/config/mainconfig.ini.php.tpl', $param, "Main configuration file"); $this->createFile($configPath . 'localconfig.ini.php.dist', 'var/config/localconfig.ini.php.tpl', $param, "Configuration file for specific environment"); $this->createFile($configPath . 'profiles.ini.php', 'var/config/profiles.ini.php.tpl', $param, "Profiles file"); $this->createFile($configPath . 'profiles.ini.php.dist', 'var/config/profiles.ini.php.tpl', $param, "Profiles file for your repository"); $this->createFile($configPath . 'preferences.ini.php', 'var/config/preferences.ini.php.tpl', $param, "Preferences file"); $this->createFile($configPath . 'urls.xml', 'var/config/urls.xml.tpl', $param, "URLs mapping file"); $this->createFile($configPath . 'index/config.ini.php', 'var/config/index/config.ini.php.tpl', $param, "Entry point configuration file"); $this->createFile($appPath . 'responses/myHtmlResponse.class.php', 'responses/myHtmlResponse.class.php.tpl', $param, "Main response class"); $this->createFile($appPath . 'install/installer.php', 'installer/installer.php.tpl', $param, "Installer script"); $this->createFile($appPath . 'tests/runtests.php', 'tests/runtests.php', $param, "Tests script"); $temp = dirname(rtrim(App::tempBasePath(), '/')); if ($temp != rtrim($appPath, '/')) { if (file_exists($temp . '/.gitignore')) { $gitignore = file_get_contents($temp . '/.gitignore') . "\n" . $appName . "/*\n"; file_put_contents($temp . '/.gitignore', $gitignore); } else { file_put_contents($temp . '/.gitignore', $appName . "/*\n"); } } else { $gitignore = file_get_contents($appPath . '.gitignore') . "\n" . basename(rtrim(App::tempBasePath(), '/')) . "/*\n"; file_put_contents($appPath . '.gitignore', $gitignore); } $this->createFile($wwwpath . 'index.php', 'www/index.php.tpl', $param, "Main entry point"); $this->createFile($wwwpath . '.htaccess', 'htaccess_allow', $param, "Configuration file for Apache"); $param['php_rp_temp'] = $this->convertRp($param['rp_temp']); $param['php_rp_var'] = $this->convertRp($param['rp_var']); $param['php_rp_log'] = $this->convertRp($param['rp_log']); $param['php_rp_conf'] = $this->convertRp($param['rp_conf']); $param['php_rp_www'] = $this->convertRp($param['rp_www']); $param['php_rp_cmd'] = $this->convertRp($param['rp_cmd']); $param['php_rp_jelix'] = $this->convertRp($param['rp_jelix']); if ($param['rp_vendor']) { $param['php_rp_vendor'] = $this->convertRp($param['rp_vendor']); $this->createFile($appPath . 'application.init.php', 'application2.init.php.tpl', $param, "Bootstrap file"); } else { $this->createFile($appPath . 'application.init.php', 'application.init.php.tpl', $param, "Bootstrap file"); } $installer = new \Jelix\Installer\Installer(new \Jelix\Installer\Reporter\Console('warning')); $installer->installApplication(); $moduleok = true; if (!$this->getOption('-nodefaultmodule')) { try { $cmd = JelixScript::getCommand('createmodule', $this->config); $options = $this->getCommonActiveOption(); $options['-addinstallzone'] = true; $options['-noregistration'] = true; $cmd->initOptParam($options, array('module' => $param['modulename'])); $cmd->run(); $this->createFile($appPath . 'modules/' . $param['modulename'] . '/templates/main.tpl', 'module/main.tpl.tpl', $param, "Main template"); } catch (Exception $e) { $moduleok = false; echo "The module has not been created because of this error: " . $e->getMessage() . "\nHowever the application has been created\n"; } } if ($this->getOption('-withcmdline')) { if (!$this->getOption('-nodefaultmodule') && $moduleok) { $agcommand = JelixScript::getCommand('createctrl', $this->config); $options = $this->getCommonActiveOption(); $options['-cmdline'] = true; $agcommand->initOptParam($options, array('module' => $param['modulename'], 'name' => 'default', 'method' => 'index')); $agcommand->run(); } $agcommand = JelixScript::getCommand('createentrypoint', $this->config); $options = $this->getCommonActiveOption(); $options['-type'] = 'cmdline'; $parameters = array('name' => $param['modulename']); $agcommand->initOptParam($options, $parameters); $agcommand->run(); } }