X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=tools%2Ftools.rb;h=aff62af543c02e7e45d95c772555514ca5ee1a9b;hp=2a5a1fef298c2cf9b6416cc1c291c15bbcb2cb3b;hb=2648c8ab1a531e660e18ac97d2efe08d4d63968d;hpb=b8df4cebbdbe838b78d4a860f1fe6e1931b1baf3 diff --git a/tools/tools.rb b/tools/tools.rb index 2a5a1fe..aff62af 100644 --- a/tools/tools.rb +++ b/tools/tools.rb @@ -1,5 +1,5 @@ #!/usr/bin/ruby -# coding: utf8 +# coding: utf-8 =begin Copyright 2008 Grégory Burri @@ -19,10 +19,18 @@ You should have received a copy of the GNU General Public License along with Euphorik. If not, see . =end -#TODO : -# - mettre à jour les numéros de versions (créer une classe) +# TODO : # - création de unit tests (voir eunit) et validation avant la mise en prod -# - faire une classe qui vérifie tous les js avec jslint + +# Met à disposition plusieurs outils (classes), tel que : +# - Vérification du code javascript +# - Mise à jour du numéro de version à partir du fichier VERSION +# - Mise en production et en preproduction +# tools.rb peut s'utiliser à la ligne de commande, exemples : +# * Mise en production : +# ./tools.rb --doprod gburri@euphorik.ch:/var/www/euphorik +# * Mise en préproduction, l'emplacement de production peut être indiqué pour copier la base +# ./tools.rb --dopreprod gburri@euphorik.ch:/var/www/euphorik_preprod --prod gburri@euphorik.ch:/var/www/euphorik # Classe permettant la vérification du code JS pas jslint. # Passe en revu chaque fichier js de manière récursive à partir d'un dossier de départ.s @@ -45,6 +53,7 @@ class VerifJS elsif fichier[-3, 3] == '.js' puts "== Vérification de #{dossier}/#{fichier} ==" system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}") + puts $?.exitstatus if $?.exitstatus > 0 return false end @@ -54,15 +63,52 @@ class VerifJS end end +# Classe de gestion de la version +class Version + # @param dossier la racine du site (par exemple "/var/www/euphorik" + def initialize(dossier) + @dossier = dossier + File.open(@dossier + '/VERSION') {|file| + @version = file.readline() + } + # les fichiers HTML dans lesquels mettre à jour la version + @fichiers = ['/pages/about.html'] + @balise = /().*?(<\/span>)/ + end + + # met à jour la version dans les fichiers @fichiers + def maj + @fichiers.each{|fichier| + fichier = @dossier + fichier + lines = IO.readlines(fichier) + File.open(fichier, 'w') {|io| + lines.each{|l| + io.write(l.sub(@balise){|m| $1 + @version + $2}) + } + } + } + end +end - +# Permet la mise en production et preproduction class MiseEnProd + # obsolète ! @@rep_remote = '/var/www/euphorik' @@host = 'euphorik.ch' @@opt_rsync = '' - def initialize + def initialize(prod_uri, preprod_uri) + @prod = prod_uri + @preprod = preprod_uri end + + # Effectue la mise en production. + def miseEnProd + end + + # Effectue la mise en préproduction. + def miseEnPreProd + end def creer_remote_rep(rep) begin @@ -130,5 +176,20 @@ class MiseEnProd end -v = VerifJS.new("../js") -v.verifier() \ No newline at end of file +# Traite la ligne de commande lorsque tools.rb est utilisé comme tel +class Commande + def traiter + ARGV + #miseEnProd = MiseEnProd.new("gburri@euphorik.ch:/var/www/euphorik", "gburri@euphorik.ch:/var/www/euphorik_preprod") + #miseEnProd.miseEnPreProd() + + #verifJS = VerifJS.new("../js") + #verifJS.verifier() + + #version = Version.new("..") + #version.maj() + end +end + +cl = Commande.new +cl.traiter()