#!/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

options :
 --install
 	Execute les actions de configuration suivant le serveur
<?php
	exit;
}

/**
* 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/img') ) {
		passthru('ln -vs '.PATH_SITE.'/www/img '.PATH_SITE.'/cache/pages/img');
	}
	if( !file_exists(PATH_SITE.'/cache/pages/fichier/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');
}

function checkDirectories()
{
	$dirList = array(
		'bilanclient',
		'courrier',
		'jo',
		'log',
		'logos',
		'marques',
		'pdf',
		'asso',
	);
	foreach ($dirList as $dir) {
		if (!file_exist(PATH_DATA.'/'.$dir)) {
			mkdir(PATH_DATA.'/'.$dir);
		}
	}
}

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

switch ($action)
{
	case '--install':
		//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 des répertoires de données
		
		//Vérification du lien symbolique du projet
		echo "Changement des permissions\n";
		changePermission();
		break;
}