/**
* Helper function to build environment files
* @param $environment
* @throws \Exception
*/
public static function buildEnvironmentFiles($environment = 'dev')
{
self::output("\n%gBuilding environment files.%n");
umask(0);
$directories = Config::value('yiinitializr.app.directories.config');
if (null === $directories) {
throw new \Exception("Unable to find 'yiinitializr.app.directories.config' on the settings.");
}
if (!is_array($directories)) {
$directories = array($directories);
}
$environment = strlen($environment) ? $environment : 'dev';
foreach ($directories as $directory) {
if (file_exists($directory)) {
$environment_directory = $directory . '/env';
if (!file_exists($environment_directory)) {
mkdir($environment_directory);
self::output("Your environment directory has been created: %r{$environment_directory}%n.\n");
}
$environment_file = $environment_directory . '/' . $environment . '.php';
if (!file_exists($environment_file)) {
file_put_contents($environment_file, "<?php\n/**\n * {$environment}.php\n */\n\nreturn array(\n);");
@chmod($environment_file, 0644);
self::output("%gEnvironment configuration file has been created: %r{$environment_file}%n.\n");
}
if (!file_exists($directory . '/env.php')) {
@copy($environment_file, $directory . '/env.php');
self::output("Your environment configuration file has been created on {$directory}.\n");
} else {
self::output("'{$directory}/env.php'\n%pfile already exists. No action has been executed.%n");
}
}
}
Config::createEnvironmentLockFile($environment);
self::output("%gEnvironment files creation process finished.%n\n");
}