X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=tools%2Ftools.rb;h=5d9f40b31e24c23af39b6de647ab7f84e8c5b181;hp=11570dd407d346dee69e1cffe80b85f8c9b768f2;hb=4696f876c2a6e33619bf688138262fe9d85540f0;hpb=6c3d418da5165f4fc94626a261c5ce33b53a34b8 diff --git a/tools/tools.rb b/tools/tools.rb index 11570dd..5d9f40b 100644 --- a/tools/tools.rb +++ b/tools/tools.rb @@ -49,15 +49,16 @@ class VerifJS def verifierRecur(dossier) Dir.foreach(dossier){|fichier| - if fichier != '.' and fichier != '..' and File.directory?(fichier) and fichier != 'dirs' - if not verifierRecur(dossier + '/' + fichier) + cheminComplet = "#{dossier}/#{fichier}" + if fichier[0,1] != '.' and File.directory?(cheminComplet) and fichier != 'libs' + if not verifierRecur(cheminComplet) return false end elsif fichier[-3, 3] == '.js' - puts "== Vérification de #{dossier}/#{fichier} ==" + puts "== Vérification de #{cheminComplet} ==" # TODO : mettre un if pour la version windows si dessous - #system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}") - system("rhino ./tools/jslint.js #{dossier}/#{fichier}") + #system("java org.mozilla.javascript.tools.shell.Main jslint.js #{cheminComplet}") + system("rhino ./tools/jslint.js #{cheminComplet}") # puts $?.exitstatus if $?.exitstatus > 0 return false @@ -78,7 +79,7 @@ class Version } # les fichiers HTML dans lesquels mettre à jour la version @fichiers = ['/pages/about.html'] - @balise = /().*?(<\/span>)/ + @balise = /().*?(<\/a>)/ end # met à jour la version dans les fichiers @fichiers @@ -88,7 +89,7 @@ class Version lines = IO.readlines(fichier) File.open(fichier, 'w') {|io| lines.each{|l| - io.write(l.sub(@balise){|m| $1 + @version + $2}) + io.write(l.sub(@balise){|m| $1 + @version + $2 + @version + $3}) } } } @@ -116,14 +117,14 @@ class MiseEnProd # Effectue la mise en production. def miseEnProd copierFichiers() - maj() + maj('yaws') end # Effectue la mise en préproduction. def miseEnPreProd copierFichiers() - copierVAR() lancerYaws() + maj('yaws_dev') end def copierFichiers @@ -135,16 +136,11 @@ class MiseEnProd set_droits_fichiers() end - # TODO - def copierVar - #TODO - end - def lancerYaws creer_rep("tools") system("rsync tools/yaws.conf #{@uri}:#{@rep}/tools") system("rsync tools/start_yaws.sh #{@uri}:#{@rep}/tools") - # TODO + system("ssh #{@uri} \"cd #{@rep}/tools; screen -d -m -S yaws_dev ./start_yaws.sh\"") end def exec(commande) @@ -159,6 +155,7 @@ class MiseEnProd end def compiler_partie_serveuse + log "compilation des modules serveur" Dir.chdir('modules') system("make") if $?.exitstatus != 0 @@ -168,7 +165,8 @@ class MiseEnProd Dir.chdir('..') end - def creer_repertoire_var + def creer_repertoire_bd + log "création du répertoire de la base de données" # création du repertoire BD creer_rep('var') creer_rep('var/images') @@ -178,6 +176,7 @@ class MiseEnProd # css, images, html, etc.. def copier_partie_statique + log "copie de la partie statique" uri = "#{@uri}:#{@rep}" system("awk '$0 !~ /prod=\"delete\"/' index.yaws | ssh #{@uri} \" cat > #{@rep}/index.yaws\"") system("rsync favicon.ico #{uri}") @@ -188,6 +187,7 @@ class MiseEnProd # minification et package des fichiers js dans euphorik.js def pack_js + log "minification, assemblage et copie du javascript" rep_js = 'js' creer_rep(rep_js) # jquery.js et euphorik.js doivent se trouve en premier @@ -217,6 +217,7 @@ class MiseEnProd end def copie_modules_serveurs + log "copie des modules du serveur" # copie des modules erlang creer_rep('modules') system("rsync -r --exclude 'euphorik_test.beam' modules/ebin #{@uri}:#{@rep}/modules") @@ -224,14 +225,24 @@ class MiseEnProd end def set_droits_fichiers + log "attribution des droits sur les fichiers" # attribution des droits exec("chmod -R g+rx .") end - def maj + # noeud : le nom du noeud sur lequel le script de mise en prod est exécuté + # Execute le script 'mise_en_prod.erl' sur le serveur afin de : + # - Recharger les modules + # - Mettre à jour la base de données + def maj(noeud) + log "rechargement des modules serveur et mise à jour de la base de données" # execution du script de mise à jour system("cat tools/mise_en_prod.erl | ssh #{@uri} \"cat > /tmp/mise_en_prod.erl\"") - system("ssh #{@uri} \"chmod u+x /tmp/mise_en_prod.erl; /tmp/mise_en_prod.erl; rm /tmp/mise_en_prod.erl\"") + system("ssh #{@uri} \"chmod u+x /tmp/mise_en_prod.erl; /tmp/mise_en_prod.erl #{noeud}; rm /tmp/mise_en_prod.erl\"") + end + + def log(message) + puts "----- #{message} -----" end end @@ -264,18 +275,7 @@ class Commande @verifJS.verifier() when 'version' @version.maj() - end - -=begin - Net::SSH.start('euphorik.ch', 'gburri') {|ssh| - output = ssh.exec!("hostname") - stdout = "" - ssh.exec!("ls -l /tmp"){|channel, stream, data| - stdout << data if stream == :stdout - } - puts stdout - } -=end + end end def afficherUsage