X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=tools%2Ftools.rb;h=46636b8d306d29891cba275ffd3e338784da2477;hp=644c82564f9ad5f826b29d8c074c6f997424ba45;hb=0f7afc675941bab91a2e74fd40caffea876591df;hpb=4dfbbcf0f54cb3eb70856ea404d9ecef6aec5e26 diff --git a/tools/tools.rb b/tools/tools.rb index 644c825..46636b8 100644 --- a/tools/tools.rb +++ b/tools/tools.rb @@ -1,38 +1,66 @@ -#!/usr/bin/ruby -=begin -Copyright 2008 Grégory Burri - -This file is part of Euphorik. - -Euphorik is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Euphorik is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Euphorik. If not, see . -=end +#!/usr/bin/ruby +# coding: utf8 +=begin +Copyright 2008 Grégory Burri + +This file is part of Euphorik. + +Euphorik is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +Euphorik is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +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 en appelant le script "cope_num_version.rb" -# - création de unit tests (voir eunit) et validation avant la mise en prod - -# Utilisation : -# tools.rb -# commandes : -# +# - mettre à jour les numéros de versions (créer une classe) +# - 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 + +# Classe permettant la vérification du code JS pas jslint. +class VerifJS + + def initialize(dossier) + @dossier = dossier + end + + def verifier + verifierRecu(@dossier) + end + + def verifierRecu(dossier) + Dir.foreach(dossier){|fichier| + if fichier != '.' and fichier != '..' and File.directory?(fichier) and fichier != 'dirs' + if not verifierRecu(dossier + '/' + fichier) + return false + end + elsif fichier[-3, 3] == '.js' + puts "== Vérification de #{dossier}/#{fichier} ==" + system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}") + if $?.exitstatus > 0 + return false + end + end + } + return true + end +end + + class MiseEnProd @@rep_remote = '/var/www/euphorik' @@host = 'euphorik.ch' @@opt_rsync = '' - def initialize + def initialize end def creer_remote_rep(rep) @@ -53,34 +81,21 @@ class MiseEnProd end def creer_repertoire_bd - # création du repertoire BD + # création du repertoire BD creer_remote_rep('BD') creer_remote_rep('BD/backup') `ssh #{@@host} "chmod g+w #{@@rep_remote}/BD"` end # css, images, html, etc.. - def copier_partie_statique - copier_fichier_html("index.yaws") - - ####print `rsync #{$opt_rsync} index.yaws #{$host}:#{$rep_remote}` - #print `rsync #{$opt_rsync} favicon.ico #{$host}:#{$rep_remote}` - #print `rsync #{$opt_rsync} -r css #{$host}:#{$rep_remote}` - #print `rsync #{$opt_rsync} -r pages #{$host}:#{$rep_remote}` - #print `rsync #{$opt_rsync} -r --exclude 'autres' img #{$host}:#{$rep_remote}` - end - - # Copie un fichier html, enlève les balises qui ont comme attribut : prod="delete" - def copier_fichier_htm(fichier) - + def copier_partie_statique + print `rsync #{$opt_rsync} index.yaws #{$host}:#{$rep_remote}` + print `rsync #{$opt_rsync} favicon.ico #{$host}:#{$rep_remote}` + print `rsync #{$opt_rsync} -r css #{$host}:#{$rep_remote}` + print `rsync #{$opt_rsync} -r pages #{$host}:#{$rep_remote}` + print `rsync #{$opt_rsync} -r --exclude 'autres' img #{$host}:#{$rep_remote}` end - # contrôle des fichiers js à l'aide de jslint - # @return false si une erreur est survenue durant la vérification - def check_js - - end - # minification et package des fichiers js dans euphorik.js def pack_js # copie des js avec minification @@ -107,8 +122,12 @@ class MiseEnProd end def maj - # execution du script de mise à jour + # execution du script de mise à jour print `cat tools/mise_en_prod.erl | ssh #{$host} "cat > /tmp/mise_en_prod.erl"` print `ssh #{$host} "chmod u+x /tmp/mise_en_prod.erl; /tmp/mise_en_prod.erl; rm /tmp/mise_en_prod.erl"` end -end +end + + +v = VerifJS.new("../js") +v.verifier() \ No newline at end of file