MOD mineurs
[euphorik.git] / tools / tools.rb
index 5472a3c..804dac7 100644 (file)
@@ -28,12 +28,12 @@ along with Euphorik.  If not, see <http://www.gnu.org/licenses/>.
 #  - 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
+#  ./tools.rb prod 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
+#  ./tools.rb pre gburri@euphorik.ch:/var/www/euphorik_preprod gburri@euphorik.ch:/var/www/euphorik
 
 # voir : http://net-ssh.rubyforge.org/ssh/v2/api/index.html
-require 'net/ssh'
+require 'net/ssh'
 
 # 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
@@ -44,19 +44,21 @@ class VerifJS
    end
    
    def verifier
-      verifierRecu(@dossier)
+      verifierRecur(@dossier)
    end
    
-   def verifierRecu(dossier)
+   def verifierRecur(dossier)
       Dir.foreach(dossier){|fichier|
          if fichier != '.' and fichier != '..' and File.directory?(fichier) and fichier != 'dirs'
-            if not verifierRecu(dossier + '/' + fichier)
+            if not verifierRecur(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}")
-            puts $?.exitstatus
+            # TODO : mettre un if pour la version windows si dessous 
+            #system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}")
+            system("rhino jslint.js #{dossier}/#{fichier}")
+            # puts $?.exitstatus
             if $?.exitstatus > 0
                return false
             end
@@ -181,9 +183,35 @@ end
 
 # Traite la ligne de commande lorsque tools.rb est utilisé comme tel
 class Commande
+   def initialize   
+      @miseEnProd = MiseEnProd.new(
+         "gburri@euphorik.ch:/var/www/euphorik",
+         "gburri@euphorik.ch:/var/www/euphorik_preprod"
+      )
+      @verifJS = VerifJS.new("../js")
+      @version = Version.new("..")
+   end
+   
    def traiter
-      #ARGV
-
+      if ARGV.size == 0
+         afficherUsage
+         return
+      end
+      
+      case ARGV[0]
+         when 'prod'
+            @version.maj()
+            @miseEnProd.miseEnProd()
+         when 'pre'
+            @version.maj()
+            @miseEnProd.miseEnPreProd()
+         when 'js'
+            @verifJS.verifier()
+         when 'version'
+            @version.maj()
+      end
+      
+=begin
       Net::SSH.start('euphorik.ch', 'gburri') {|ssh|
          output = ssh.exec!("hostname")
          stdout = ""
@@ -192,16 +220,15 @@ class Commande
          }
          puts stdout
       }
-      
-      
-      #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
+   
+   def afficherUsage
+      puts "Usage : tools.rb (prod | pre | js | version)\n" +
+         "   prod : Mise en production\n" +
+         "   preprod : Mise en préproduction, copie les données en production\n" +
+         "   js : vérification des fichiers JavaScript\n" +
+         "   version : met à jour la version à partir du fichier VERSION"
    end
 end