X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=tools%2Fmise_en_prod.rb;h=d95156cfdd786699ae0201239da025b8a2d0e7a1;hp=fa2923f0ae4737787c49e2d041a0ebc311f03c33;hb=18e8fadf5aad8d7b2e7b750210dc949951b4a124;hpb=d7816465f9cd53b0f0f011febe063e78bffe3f9e diff --git a/tools/mise_en_prod.rb b/tools/mise_en_prod.rb index fa2923f..d95156c 100755 --- a/tools/mise_en_prod.rb +++ b/tools/mise_en_prod.rb @@ -1,45 +1,78 @@ -#!/usr/bin/ruby -=begin -Copyright 2008 Grégory Burri +#!/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. +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 = '' -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 -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 - +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"`