X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=tools%2Ftools.rb;h=f2e2067cb77aa667ab55ec2bad2bcd1b59cc2ead;hp=46636b8d306d29891cba275ffd3e338784da2477;hb=e2355385811ba452308be5e66afc7f93cb6af75b;hpb=0f7afc675941bab91a2e74fd40caffea876591df diff --git a/tools/tools.rb b/tools/tools.rb index 46636b8..f2e2067 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,12 +19,21 @@ 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 class VerifJS def initialize(dossier) @@ -44,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 @@ -51,17 +61,54 @@ class VerifJS } return true 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 @@ -128,6 +175,19 @@ class MiseEnProd end end +# Traite la ligne de commande lorsque tools.rb est utilisé comme tel +class Commande + def traiter + #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 -v = VerifJS.new("../js") -v.verifier() \ No newline at end of file +cl = Commande.new +cl.traiter()