maj.class.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. class maj {
  3. public static function query(string $query = NULL){
  4. if($query != NULL){
  5. db::query($query);
  6. try {
  7. db::execute();
  8. maj::print("SUCCESS : " . $query);
  9. return TRUE;
  10. } catch (Exception $ex) {
  11. maj::print("ERREUR TECHNIQUE : " . $query);
  12. return FALSE;
  13. }
  14. } else {
  15. maj::print("ERREUR TECHNIQUE : Query not found");
  16. return FALSE;
  17. }
  18. }
  19. public static function compareHash(){
  20. if(git::getCommitHash() == git::getCommitHash(MAJ_TARGET)){
  21. return TRUE;
  22. } else {
  23. return FALSE;
  24. }
  25. }
  26. public static function print(string $string){
  27. echo "<div>" . $string . "</string>";
  28. }
  29. public static function printSeparateur(){
  30. self::print("**********************");
  31. }
  32. public static function start(){
  33. self::printSeparateur();
  34. self::print(">> Démarrage de la mise à jour de " . DOMAIN_CMS);
  35. historique::recRef("/parametres.html");
  36. historique::add(array(
  37. "idType" => historique::getIdRef("ACTION"),
  38. "idUser" => session::getId(),
  39. "idPage" => historique::getIdRef("/parametres.html"),
  40. "log" => "Lancement de la mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]"
  41. ));
  42. // Activation du mode maintenance
  43. self::printSeparateur();
  44. self::print(">> Mode maintenance activé");
  45. core::addFileMaintenance();
  46. // Création d'un backUp
  47. self::printSeparateur();
  48. self::print(">> Création du backup");
  49. backup::create();
  50. file::cleanFilesByOrder(DIR_BACKUP, BACKUP_LIMIT);
  51. include_once(DIR_MAJ . "sql/maj.php");
  52. self::printSeparateur();
  53. if(goSql() == TRUE){
  54. self::print("Maj SQL réalisée");
  55. self::printSeparateur();
  56. $gitReturn = self::bashMaj();
  57. } else {
  58. self::print("ERROR : Maj SQL");
  59. }
  60. if($gitReturn == FALSE){
  61. self::printSeparateur();
  62. self::print("ERROR : Repo GIT [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
  63. self::printSeparateur();
  64. self::print(">> ROLLBACK : Restauration des données");
  65. backup::restore(DIR_BACKUP . backup::last());
  66. alert::recError("Mise à jour en erreur de [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
  67. historique::recRef("/parametres.html");
  68. historique::add(array(
  69. "idType" => historique::getIdRef("ERROR"),
  70. "idUser" => session::getId(),
  71. "idPage" => historique::getIdRef("/parametres.html"),
  72. "log" => "Erreur lors de la mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]"
  73. ));
  74. } else {
  75. self::printSeparateur();
  76. self::print("Mise à jour du repo GIT [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "] effectué");
  77. }
  78. self::printSeparateur();
  79. self::print(">> Réinitialisation des JSON");
  80. json::create("salaries");
  81. json::create("excel");
  82. json::create("excel-proweb");
  83. json::create("events");
  84. json::create("users");
  85. json::create("salaries-proweb");
  86. json::create("lotterys");
  87. self::printSeparateur();
  88. self::print(">> Mode maintenance désactivé");
  89. core::removeFileMaintenance();
  90. self::printSeparateur();
  91. self::print(">> Fin de la mise à jour de " . DOMAIN_CMS);
  92. self::printSeparateur();
  93. if($gitReturn == TRUE){
  94. historique::recRef("/parametres.html");
  95. historique::add(array(
  96. "idType" => historique::getIdRef("ACTION"),
  97. "idUser" => session::getId(),
  98. "idPage" => historique::getIdRef("/parametres.html"),
  99. "log" => "Mise à jour [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "] terminée"
  100. ));
  101. self::print("MAJ EN SUCCES [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
  102. self::printSeparateur();
  103. } else {
  104. self::print("MAJ EN ERREUR [" . MAJ_TARGET . " - " . git::getCommitHash(MAJ_TARGET) . "]");
  105. self::printSeparateur();
  106. }
  107. }
  108. public static function bashMaj(){
  109. $output = NULL;
  110. $retval = NULL;
  111. $bash = DIR_MAJ . MAJ . ".sh";
  112. $error = 0;
  113. if(is_file($bash)){
  114. try {
  115. exec("bash " .$bash, $output, $retval);
  116. foreach ($output as $key => $value) {
  117. self::print($value);
  118. if(git::checkError($value) == TRUE){
  119. $error = 1;
  120. }
  121. }
  122. } catch (\Throwable $th) {
  123. self::print("ERROR : " . $bash);
  124. return FALSE;
  125. }
  126. return ($error == 0)? TRUE : FALSE;
  127. } else {
  128. self::print("ERROR : " . $bash . " not found");
  129. return FALSE;
  130. }
  131. }
  132. public static function bashFetch(){
  133. $output = NULL;
  134. $retval = NULL;
  135. $bash = DIR_MAJ . "get-origin.sh";
  136. $error = 0;
  137. if(is_file($bash)){
  138. try {
  139. exec("bash " .$bash, $output, $retval);
  140. /*foreach ($output as $key => $value) {
  141. self::print($value);
  142. }*/
  143. } catch (\Throwable $th) {
  144. self::print("ERROR : " . $bash);
  145. return FALSE;
  146. }
  147. return ($error == 0)? TRUE : FALSE;
  148. } else {
  149. self::print("ERROR : " . $bash . " not found");
  150. return FALSE;
  151. }
  152. }
  153. }