X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;ds=sidebyside;f=tools%2Fmise_en_prod.rb;h=ae0bb8f09980b6fbca3aecc539cee976d4d0da64;hb=f68d8b1eb270680be530964acfbaa977671caa00;hp=fa2923f0ae4737787c49e2d041a0ebc311f03c33;hpb=d7816465f9cd53b0f0f011febe063e78bffe3f9e;p=euphorik.git
diff --git a/tools/mise_en_prod.rb b/tools/mise_en_prod.rb
index fa2923f..ae0bb8f 100755
--- a/tools/mise_en_prod.rb
+++ b/tools/mise_en_prod.rb
@@ -1,45 +1,73 @@
-#!/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
-
-
-def copy_files(dest, opt)
- `rsync #{opt} index.html #{dest}`
- `rsync #{opt} -r css #{dest}`
- `rsync #{opt} -r img #{dest}`
- #`rsync #{opt} -r js #{dest}`
- `rsync #{opt} -r lightbox #{dest}`
- `rsync #{opt} -r modules/include #{dest}/modules`
- `rsync #{opt} -r modules/ebin #{dest}/modules`
- `rsync #{opt} -r pages #{dest}`
-
- # copie des js avec minification
-
+#!/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
+
+$rep_remote = '/var/www/euphorik'
+$host = 'euphorik.ch'
+$opt_rsync = ''
+
+def creer_remote_rep(rep)
+ begin
+ `ssh #{$host} "mkdir #{$rep_remote}/#{rep}"`
+ rescue
+ end
end
-if __FILE__ == $0
- # la destination
- $dest = 'gburri@euphorik.ch:/var/www/euphorik'
- $dest = $*[0] if $*.length > 1
- # les options communes
- $opt = ''
-
- copy_files($dest, $opt)
+# Compilation de la partie serveur
+Dir.chdir('../modules')
+puts `make`
+if $?.exitstatus != 0
+ puts "Echec de compilation de la partie serveuse"
+ exit 1
end
+Dir.chdir('..')
+
+# création du repertoire BD
+creer_remote_rep('BD')
+`ssh #{$host} "chmod g+w #{$rep_remote}/BD"`
+
+# copie de la partie statique : css, images, html, etc..
+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}`
+
+# copie des js avec minification
+rep_js = 'js'
+creer_remote_rep(rep_js)
+Dir.entries(rep_js).each{|fichier|
+ if fichier[0..0] != "." and fichier != "debug.js"
+ puts "Minimisation et copie de #{fichier}"
+ print `tools/jsmin.rb < #{rep_js}/#{fichier} | ssh #{$host} "cat > #{$rep_remote}/#{rep_js}/#{fichier}"`
+ end
+}
+
+# copie des modules erlang
+creer_remote_rep('modules')
+`rsync #{$opt_rsync} -r --exclude 'euphorik_test.beam' modules/ebin #{$host}:#{$rep_remote}/modules`
+`rsync #{$opt_rsync} -r modules/include #{$host}:#{$rep_remote}/modules`
+
+# attribution des droits
+`ssh #{$host} "chmod -R g+rx #{$rep_remote}"`
+
+# 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"`