|
|
@@ -0,0 +1,154 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+class maj {
|
|
|
+
|
|
|
+ public static function query(string $query = NULL){
|
|
|
+ if($query != NULL){
|
|
|
+ db::query($query);
|
|
|
+ try {
|
|
|
+ db::execute();
|
|
|
+ maj::print("SUCCESS : " . $query);
|
|
|
+ return TRUE;
|
|
|
+ } catch (Exception $ex) {
|
|
|
+ maj::print("ERREUR TECHNIQUE : " . $query);
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ maj::print("ERREUR TECHNIQUE : Query not found");
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function compareHash(){
|
|
|
+ if(git::getCommitHash() == git::getCommitHash(MAJ_TARGET)){
|
|
|
+ return TRUE;
|
|
|
+ } else {
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function print(string $string){
|
|
|
+ echo "<div>" . $string . "</string>";
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function printSeparateur(){
|
|
|
+ self::print("**********************");
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function start(){
|
|
|
+
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Démarrage de la mise à jour de " . DOMAIN_CMS);
|
|
|
+
|
|
|
+ historique::recRef("/parametres.html");
|
|
|
+ historique::add(array(
|
|
|
+ "idType" => historique::getIdRef("ACTION"),
|
|
|
+ "idUser" => session::getId(),
|
|
|
+ "idPage" => historique::getIdRef("/parametres.html"),
|
|
|
+ "log" => "Lancement de la mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]"
|
|
|
+ ));
|
|
|
+
|
|
|
+ // Activation du mode maintenance
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Mode maintenance activé");
|
|
|
+ core::addFileMaintenance();
|
|
|
+
|
|
|
+ // Création d'un backUp
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Création du backup");
|
|
|
+ backup::create();
|
|
|
+ file::cleanFilesByOrder(DIR_BACKUP, BACKUP_LIMIT);
|
|
|
+
|
|
|
+ include_once(DIR_MAJ . "sql/maj.php");
|
|
|
+ self::printSeparateur();
|
|
|
+ if(goSql() == TRUE){
|
|
|
+ self::print("Maj SQL réalisée");
|
|
|
+ self::printSeparateur();
|
|
|
+ $gitReturn = self::bash();
|
|
|
+ } else {
|
|
|
+ self::print("ERROR : Maj SQL");
|
|
|
+ }
|
|
|
+
|
|
|
+ if($gitReturn == FALSE){
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print("ERROR : Repo GIT [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> ROLLBACK : Restauration des données");
|
|
|
+ backup::restore(DIR_BACKUP . backup::last());
|
|
|
+
|
|
|
+ alert::recError("Mise à jour en erreur de [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
|
|
|
+
|
|
|
+ historique::recRef("/parametres.html");
|
|
|
+ historique::add(array(
|
|
|
+ "idType" => historique::getIdRef("ERROR"),
|
|
|
+ "idUser" => session::getId(),
|
|
|
+ "idPage" => historique::getIdRef("/parametres.html"),
|
|
|
+ "log" => "Erreur lors de la mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]"
|
|
|
+ ));
|
|
|
+ } else {
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print("Mise à jour du repo GIT [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "] effectué");
|
|
|
+ }
|
|
|
+
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Réinitialisation des JSON");
|
|
|
+ json::create("salaries");
|
|
|
+ json::create("excel");
|
|
|
+ json::create("excel-proweb");
|
|
|
+ json::create("events");
|
|
|
+ json::create("users");
|
|
|
+ json::create("salaries-proweb");
|
|
|
+ json::create("lotterys");
|
|
|
+
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Mode maintenance désactivé");
|
|
|
+ core::removeFileMaintenance();
|
|
|
+
|
|
|
+ self::printSeparateur();
|
|
|
+ self::print(">> Fin de la mise à jour de " . DOMAIN_CMS);
|
|
|
+ self::printSeparateur();
|
|
|
+
|
|
|
+ if($gitReturn == TRUE){
|
|
|
+ historique::recRef("/parametres.html");
|
|
|
+ historique::add(array(
|
|
|
+ "idType" => historique::getIdRef("ACTION"),
|
|
|
+ "idUser" => session::getId(),
|
|
|
+ "idPage" => historique::getIdRef("/parametres.html"),
|
|
|
+ "log" => "Mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "] terminée"
|
|
|
+ ));
|
|
|
+
|
|
|
+ self::print("MAJ EN SUCCES [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
|
|
|
+ self::printSeparateur();
|
|
|
+ } else {
|
|
|
+ self::print("MAJ EN ERREUR [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
|
|
|
+ self::printSeparateur();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function bash(){
|
|
|
+ $output = NULL;
|
|
|
+ $retval = NULL;
|
|
|
+ $bash = DIR_MAJ . MAJ . ".sh";
|
|
|
+ $error = 0;
|
|
|
+
|
|
|
+ if(is_file($bash)){
|
|
|
+ try {
|
|
|
+ exec("bash " .$bash, $output, $retval);
|
|
|
+ foreach ($output as $key => $value) {
|
|
|
+ self::print($value);
|
|
|
+ if(git::checkError($value) == TRUE){
|
|
|
+ $error = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ self::print("ERROR : " . $bash);
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ return ($error == 0)? TRUE : FALSE;
|
|
|
+ } else {
|
|
|
+ self::print("ERROR : " . $bash . " not found");
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|