2011-11-23 23:45:04 -02:00
<? php
2013-11-05 14:12:09 -02:00
/*
* This file is part of the Magallanes package.
*
* (c) Andrés Montañez <andres@andresmontanez.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
2012-09-21 00:23:07 -03:00
class Mage_Command_BuiltIn_Init
extends Mage_Command_CommandAbstract
2011-11-23 23:45:04 -02:00
{
2013-07-06 20:45:54 -03:00
protected $generalTemplate = <<<' YML '
# global settings
name: %projectName%
email: %notificationEmail%
notifications: %notificationEnabled%
logging: %loggingEnabled%
maxlogs: %maxlogs%
YML ;
2011-11-23 23:45:04 -02:00
public function run ()
{
$configDir = '.mage' ;
2012-09-21 00:23:07 -03:00
2011-11-23 23:45:04 -02:00
Mage_Console :: output ( 'Initiating managing process for application with <dark_gray>Magallanes</dark_gray>' );
2012-09-21 00:23:07 -03:00
2011-11-23 23:45:04 -02:00
// Check if there is already a config dir
if ( file_exists ( $configDir )) {
Mage_Console :: output ( '<light_red>Error!!</light_red> Already exists <dark_gray>.mage</dark_gray> directory.' , 1 , 2 );
} else {
$results = array ();
$results [] = mkdir ( $configDir );
$results [] = mkdir ( $configDir . '/logs' );
2013-07-06 20:45:54 -03:00
$results [] = file_put_contents ( $configDir . '/logs/.gitignore' , "* \n !.gitignore" );
2011-11-23 23:45:04 -02:00
$results [] = mkdir ( $configDir . '/tasks' );
2013-07-06 20:45:54 -03:00
$results [] = touch ( $configDir . '/tasks/.gitignore' );
2011-11-23 23:45:04 -02:00
$results [] = mkdir ( $configDir . '/config' );
$results [] = mkdir ( $configDir . '/config/environment' );
2013-07-06 20:45:54 -03:00
$results [] = touch ( $configDir . '/config/environment/.gitignore' );
$results [] = file_put_contents ( $configDir . '/config/general.yml' , $this -> getGeneralConfig ());
2012-09-21 00:23:07 -03:00
2011-11-23 23:45:04 -02:00
if ( ! in_array ( false , $results )) {
Mage_Console :: output ( '<light_green>Success!!</light_green> The configuration for <dark_gray>Magallanes</dark_gray> has been generated at <blue>.mage</blue> directory.' );
Mage_Console :: output ( '<dark_gray>Please!! Review and adjust the configuration.</dark_gray>' , 2 , 2 );
} else {
Mage_Console :: output ( '<light_red>Error!!</light_red> Unable to generate the configuration.' , 1 , 2 );
}
}
}
2013-07-06 20:45:54 -03:00
protected function getGeneralConfig ()
{
// Assamble Global Settings
$projectName = $this -> getConfig () -> getParameter ( 'name' , '' );
$notificationEmail = $this -> getConfig () -> getParameter ( 'email' , '' );
$notificationEnabled = ( $notificationEmail != '' ) ? 'true' : 'false' ;
$globalSettings = str_replace (
array (
'%projectName%' ,
'%notificationEmail%' ,
'%notificationEnabled%' ,
'%loggingEnabled%' ,
'%maxlogs%' ,
),
array (
$projectName ,
$notificationEmail ,
$notificationEnabled ,
'true' ,
30
),
$this -> generalTemplate
);
return $globalSettings ;
}
2011-11-23 23:45:04 -02:00
}