<?php
/* 
 * Mise à jour de l'agent depuis la plateforme centrale
 */

$retour = '';

//OS windows
if (substr(PHP_OS, 0, 3) == 'WIN'){
	if (file_exists('../update_agent.bat')) {
		$handle = @opendir('./client/exportISO/');
		if (!$handle) exit('<strong>Erreur de mise à jour : dossier exportISO inexistant</strong>');
		while ($file = readdir($handle)) {
			if (is_dir('./client/exportISO/'.$file) && file_exists('./client/exportISO/'.$file.'/lock')) exit('<strong>Erreur de mise à jour : un lock est présent dans ./client/exportISO/'.$file.'. Réessayer plus tard.</strong>');
		}
		$prev_dir = getcwd();
		chdir('../');
		$output = array();
		try {
			set_time_limit(300);
			if (!exec('update_agent.bat', $output, $return_val)) throw new Exception('Erreur d\'execution');
			$output = implode("<br />", $output);
			chdir($prev_dir);
			$retour = "<strong>Mise à jour effectuée</strong><br /><br />Log :<p>".$output."</p>";
		}
		catch (Exception $e) {
			$retour = "<strong>Erreur de mise à jour :</strong> ".$e->getMessage();
		}
	}
	else {
		$retour = "<strong>Fichier d'update inexistant</strong>";
	}
}
//OS LINUX
else {
	if (file_exists('update_agent.sh')) {
		
		$handle = @opendir('./client/exportISO/');
		if (!$handle) exit('<strong>Erreur de mise à jour : dossier exportISO inexistant</strong>');
		while ($file = readdir($handle)) {
			if (is_dir('./client/exportISO/'.$file) && file_exists('./client/exportISO/'.$file.'/lock')) exit('<strong>Erreur de mise à jour : un lock est présent dans ./client/exportISO/'.$file.'. Réessayer plus tard.</strong>');
		}
		$prev_dir = getcwd();
		$output = array();
		
		try {
			set_time_limit(300);
			if (!exec('sh update_agent.sh', $output, $return_val)) throw new Exception('Erreur d\'execution');
			$output = implode("<br />", $output);
			chdir($prev_dir);
			$retour = "<strong>Mise à jour effectuée</strong><br /><br />Log :<p>".$output."</p>";
		}
		catch (Exception $e) {
			$retour = "<strong>Erreur de mise à jour :</strong> ".$e->getMessage();
		}
		
		
	}
	else {
		$retour = "<strong>Fichier d'update inexistant</strong>";
	}
}



echo $retour;

?>
