#!/usr/bin/php
<?php
// Paramètres
if ( $argc < 2 || in_array($argv[1], array('--help', '-help', '-h', '-?')) ) {
?>
Installation
Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide.

Utilisation : <?php echo $argv[0]; ?> options [environnement]

options :
 check
 	Vérifie les différents éléments de la configuration
 	et affiche le résultat (Nécessite d'être ROOT)
 configure
	Execute les actions de configuration suivant le serveur
 install
 	Créer le lien symbolique
 update-vhost
  	Met à jour la configuration définie dans apache si nécessaire
 	(Nécessite d'être ROOT)

environnement :
	PRD : Production
 	REC : Recette
 	DEV : Developpement
<?php
	exit;
}

$action = $argv[1];
$mode = strtoupper($argv[2]);
$hostname = exec('echo $(hostname)');

switch ($action)
{
	case 'check':
		if (!isRoot()) {
			echo "Vous devez être ROOT pour utiliser ce script.\n"; exit;
		}
		if (!hasConfig()) {
			echo "Fichier de configuration manquant...\n"; exit;
		}
		echo "Lien symbolique 'cache/logos' : ";
		echo hasSymlink('cache/logos') ? "Ok" : "Manquant";
		echo "\n";
		echo "Lien symbolique 'cache/img' : ";
		echo hasSymlink('cache/img') ? "Ok" : "Manquant";
		echo "\n";
		echo "Lien symbolique 'data' : ";
		echo hasSymlink('data') ? "Ok" : "Manquant";
		echo "\n";

		break;

	case 'configure':
		//Création de la configuration
		echo "Ecriture de la configuration\n";
		writeConfig();
		//Création des liens symboliques
		require_once 'config.inc';
		echo "Création des liens symboliques\n";
		writeSymlinks();
		//Vérification du lien symbolique du projet
		echo "Changement des permissions\n";
		changePermission();
		break;

	case 'install':

		break;

	case 'update-vhost':
		if (!isRoot()) {
			echo 'Vous devez être ROOT pour utiliser ce script';
			exit;
		}
		break;
	default :

		break;
}

/**
 * Vérfie si l'utilisateur est ROOT
 */
function isRoot()
{
	$uid =  exec('echo $(id -u)');
	if ((int) $uid == 0){
		return true;
	} else {
		return false;
	}
}

function hasConfig()
{
	return file_exists(realpath(dirname(__FILE__)).'/config.inc');
}

function hasSymlink($symlink)
{
	return is_link(PATH_SITE.'/'.$symlink);
}

function changePermission(){
	passthru('chmod +x '.PATH_SITE.'/batch/*.php');
	passthru('chmod +x '.PATH_SITE.'/includes/print/linux/*');
	passthru('chown -R www-data: '.PATH_SITE);
}

function writeSymlinks(){
	if( !file_exists(PATH_SITE.'/data') ) {
		passthru('ln -vs '.realpath(dirname(__FILE__).'/../../data').' '.PATH_SITE.'/data');
	}
	if( !file_exists(PATH_SITE.'/cache/pages/fichier/img') ) {
		passthru('ln -vs '.PATH_SITE.'/www/img '.PATH_SITE.'/cache/pages/img');
	}
	if( !file_exists(PATH_SITE.'/cache/logos') ) {
		passthru('ln -vs '.PATH_DATA.'/logos '.PATH_SITE.'/cache/pages/fichier/logos');
	}
	if( !file_exists(PATH_SITE.'/cache/pages/fichier/imgcache') ) {
		passthru('ln -vs '.PATH_SITE.'/cache/pages/imgcache '.PATH_SITE.'/cache/pages/fichier/imgcache');
	}
	
}

function writeConfig()
{
	global $hostname;
	passthru('cp -v '.realpath(dirname(__FILE__)).'/'.$hostname.'/config.inc '.realpath(dirname(__FILE__)).'/config.inc');
}