* * Ce fichier fait partie du site de l'Association des Étudiants de * l'UTBM, http://ae.utbm.fr. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ define("PROD_CRON", "/var/www/cron_update.sh"); define("PROD_SCRIPT", "/var/www/update-official-www.sh"); define("POST_COMMIT_SCRIPT", "/data/svn/ae2/hooks/post-commit"); define("REFRESH_TAISTE", "/var/www/refresh-taiste-database.sh"); $topdir="../"; require_once($topdir. "include/site.inc.php"); $site = new site (); if ( !$site->user->is_in_group("root") ) $site->error_forbidden("none","group",7); $site->start_page("none","Administration / passage en prod"); $cts = new contents("Administration / Passage en production"); $tabs = array(array("","rootplace/prod_cron.php","Passage en prod"), array("","rootplace/prod_cron.php?view=refreshdb","Rafraichir taiste"), array("script","rootplace/prod_cron.php?view=script","Script de passage en prod"), array("commit","rootplace/prod_cron.php?view=commit","Script de post commit"), array("clone","rootplace/prod_cron.php?view=refreshdbscript","Script de refresh de taiste")); if ( $_REQUEST["action"] == "passprod" && $GLOBALS["svalid_call"] ) { if ( $site->is_sure ( "","Passage en production",null, 2 ) ) @exec(escapeshellcmd(PROD_CRON)); $Ok=true; } if ( $_REQUEST["action"] == "refreshdb" && $GLOBALS["svalid_call"] ) { if ( $site->is_sure ( "","Rafraichir taiste",null, 2 ) ) @exec(escapeshellcmd(REFRESH_TAISTE)); $Ok=true; } if ( $_REQUEST["action"] == "scriptprod" && $GLOBALS["svalid_call"] ) { if ( $site->is_sure ( "","Modification du script de passage en production",null, 2 ) ) { if(!$handle = @fopen(PROD_SCRIPT, "w")) $Ok=false; else { $content = preg_replace("/\r\n/","\n",htmlspecialchars_decode($_REQUEST["__script__"])); @fwrite($handle,$content); @fclose ($handle); $_REQUEST["view"]="script"; $Ok=true; } } } if ( $_REQUEST["action"] == "scriptpostcommit" && $GLOBALS["svalid_call"] ) { if ( $site->is_sure ( "","Modification du script de post-commit",null, 2 ) ) { if(!$handle = @fopen(POST_COMMIT_SCRIPT, "w")) $Ok=false; else { $content = preg_replace("/\r\n/","\n",htmlspecialchars_decode($_REQUEST["__script__"])); @fwrite($handle,$content); @fclose ($handle); $_REQUEST["view"]="commit"; $Ok=true; } } } if ( $_REQUEST["action"] == "refreshdbscript" && $GLOBALS["svalid_call"] ) { if ( $site->is_sure ( "","Modification du script de refresh de taiste",null, 2 ) ) { if(!$handle = @fopen(REFRESH_TAISTE, "w")) $Ok=false; else { $content = preg_replace("/\r\n/","\n",htmlspecialchars_decode($_REQUEST["__script__"])); @fwrite($handle,$content); @fclose ($handle); $_REQUEST["view"]="script"; $Ok=true; } } } $cts->add(new tabshead($tabs,$_REQUEST["view"])); $cts->add_paragraph("Révision en production : ".get_rev()); if ( $Ok ) { if ( $_REQUEST["action"] == "scriptprod" ) $cts->add_paragraph("Script de passage en prod modifié"); elseif( $_REQUEST["action"] == "commit" ) $cts->add_paragraph("Script de post commit modifié"); elseif( $_REQUEST["action"] == "refreshdbscript" ) $cts->add_paragraph("Script de refresh modifié"); } if($_REQUEST["view"]=="script") { if(!$handle = @fopen(PROD_SCRIPT, "r")) $cts->add_paragraph("Impossible d'ouvrir le script de passage en prod !"); else { $script = @fread($handle, @filesize(PROD_SCRIPT)); $frm = new form("passageenprod", "prod_cron.php", false, "POST", "Editer le script de passage en production"); $frm->allow_only_one_usage(); $frm->add_hidden("action","scriptprod"); $frm->add_text_area("__script__", "Script : ",$script,80,40); $frm->add_submit("valid","Valider"); $cts->add($frm,true); } } else if($_REQUEST["view"]=="commit") { if(!$handle = @fopen(POST_COMMIT_SCRIPT, "r")) $cts->add_paragraph("Impossible d'ouvrir le script de post commit !"); else { $script = @fread($handle, @filesize(POST_COMMIT_SCRIPT)); $frm = new form("postcommit", "prod_cron.php", false, "POST", "Editer le script de post commit"); $frm->allow_only_one_usage(); $frm->add_hidden("action","scriptpostcommit"); $frm->add_text_area("__script__", "Script : ",$script,80,40); $frm->add_submit("valid","Valider"); $cts->add($frm,true); } } else if($_REQUEST["view"]=="refreshdbscript") { if(!$handle = @fopen(REFRESH_TAISTE, "r")) $cts->add_paragraph("Impossible d'ouvrir le script de rafraichissement !"); else { $script = @fread($handle, @filesize(REFRESH_TAISTE)); $frm = new form("refreshdbscript", "prod_cron.php", false, "POST", "Editer le script de refresh de taiste"); $frm->allow_only_one_usage(); $frm->add_hidden("action","refreshdbscript"); $frm->add_text_area("__script__", "Script : ",$script,80,40); $frm->add_submit("valid","Valider"); $cts->add($frm,true); } } else if ($_REQUEST["view"] == "refreshdb") { if ($_REQUEST["action"] == "refreshdb" && $Ok) { $cts->add_paragraph("Fafraichissement programmé dans les deux minutes à venir."); } else { $frm = new form("refreshdb", "prod_cron.php", false, "POST", "Rafraichir la BDD de taiste"); $frm->allow_only_one_usage(); $frm->add_hidden("action","refreshdb"); $frm->add_submit("valid","Valider"); $cts->add($frm,true); } } else { if ($_REQUEST["action"] == "passprod" && $Ok) { $cts->add_paragraph("Passage en prod programmé dans les deux minutes à venir."); } else { $frm = new form("passageenprod", "prod_cron.php", false, "POST", "Passer en production"); $frm->allow_only_one_usage(); $frm->add_hidden("action","passprod"); $frm->add_submit("valid","Valider"); $cts->add($frm,true); } } $site->add_contents($cts); $site->end_page(); ?>