webservice/scripts/build/configure.php
2016-01-27 16:41:22 +00:00

102 lines
3.0 KiB
PHP

<?php
// --- Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(__DIR__ . '/../../application'));
// --- Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// --- Composer autoload
require_once realpath(__DIR__ . '/../../vendor/autoload.php');
try {
$opts = new Zend_Console_Getopt(
//Options
array(
'help|?' => "Affiche les informations d'utilisation",
'install=s' => "Installe et configure",
)
);
$opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
echo $e->getUsageMessage();
exit;
}
//Usage
if (isset($opts->help))
{
echo $opts->getUsageMessage();
exit;
}
if ($opts->install)
{
echo date('Y-m-d H:i:s')." - Démarrage de la configuration.\n";
// --- Copy configuration
$configDir = realpath(dirname(__FILE__)).'/profil';
$appconfigDir = APPLICATION_PATH.'/configs';
$profil = $opts->install;
$result = copy($configDir.'/'.$profil.'/application.ini', $appconfigDir.'/application.ini');
if ($result !== true) {
echo date('Y-m-d H:i:s')." - Impossible de copier la configuration.\n";
exit(1);
}
// --- Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
$c = new Zend_Config($application->getOptions());
// Generate cache file
// genCache.php
passthru('php '.realpath(dirname(__FILE__)).'/genCache.php --generate Evenements');
// genCodeRatios.php
if ( substr(strtoupper(PHP_OS),0,3) != 'WIN' ) {
// --- Copy files
passthru('cp -rv '.realpath(dirname(__FILE__)).'/files/* '.$c->profil->path->shared.'/files/');
// --- Modification des permissions
passthru('chown -R www-data: '.APPLICATION_PATH.'/../');
// --- Check WKHTMLTOPDF
$wkhtml = exec('echo $(which wkhtmltopdf)');
if ( empty(trim($wkhtml)) ) {
echo date('Y-m-d H:i:s')." - Warning : WKHTMLTOPDF non installé.\n";
}
}
// --- Create data directory and all his children
$path = $c->profil->path->shared;
$dirToCreate = array(
$path.'/cache',
$path.'/files',
$path.'/log',
$path.'/sessions',
$path.'/wsdl',
);
foreach ($dirToCreate as $dir) {
if (in_array($dir, array('sessions', 'wsdl')) ) {
passthru('rm -rf '.$dir);
}
if ( ! file_exists($dir) ) {
mkdir($dir, 0777, true);
// --- Modification des permissions
passthru('chown -Rv www-data: '.$dir);
}
}
// --- Release
$projectPath = str_replace('/shared', '', $c->profil->path->shared);
$releasePath = realpath(str_replace('/application', '', APPLICATION_PATH));
passthru("rm -v ".$projectPath."/current");
passthru("ln -sv ".$releasePath." ".$projectPath."/current");
echo date('Y-m-d H:i:s')." - Fin de la configuration.\n";
}