From 00c3f79a99bf5bd2fe2f8efddb1134c139d73e7c Mon Sep 17 00:00:00 2001 From: Nathan Weizenbaum Date: Wed, 17 Jun 2009 21:23:35 -0700 Subject: [PATCH] Make the watcher update the Haml and Sass pages when the respective branches are updated. --- Rakefile | 16 ++++++++++++++-- extra/edge_gem_watch.rb | 13 ------------- extra/update_watch.rb | 16 ++++++++++++++++ 3 files changed, 30 insertions(+), 15 deletions(-) delete mode 100644 extra/edge_gem_watch.rb create mode 100644 extra/update_watch.rb diff --git a/Rakefile b/Rakefile index c1bef62e..cf4062e0 100644 --- a/Rakefile +++ b/Rakefile @@ -116,8 +116,8 @@ task :release_edge do sh %{rubyforge add_release haml haml-edge "Bleeding Edge (v#{edge_version})" pkg/haml-edge-#{edge_version}.gem} end -task :watch_for_edge_update do - sh %{ruby extra/edge_gem_watch.rb} +task :watch_for_update do + sh %{ruby extra/update_watch.rb} end # ----- Documentation ----- @@ -155,6 +155,18 @@ rescue LoadError task :yardoc => :rdoc end +task :pages do + require 'fileutils' + raise 'No ENV["PROJ"]!' unless proj = ENV["PROJ"] + sh %{git checkout #{proj}-pages} + sh %{git pull origin #{proj}-pages} + + sh %{staticmatic build .} + FileUtils.mv("site", "/var/www/#{proj}-pages") + sh %{git reset --hard HEAD} + sh %{git clean -xdf} +end + # ----- Coverage ----- begin diff --git a/extra/edge_gem_watch.rb b/extra/edge_gem_watch.rb deleted file mode 100644 index c0340d51..00000000 --- a/extra/edge_gem_watch.rb +++ /dev/null @@ -1,13 +0,0 @@ -require 'rubygems' -require 'sinatra' -require 'json' -set :port, 3123 -set :environment, :production -Dir.chdir(File.dirname(__FILE__) + "/..") - -post "/" do - payload = JSON.parse(params["payload"]) - - break unless payload["ref"] == "refs/heads/master" - system("rake release_edge &> edge-gem-output.log") -end diff --git a/extra/update_watch.rb b/extra/update_watch.rb new file mode 100644 index 00000000..a4c4d2f5 --- /dev/null +++ b/extra/update_watch.rb @@ -0,0 +1,16 @@ +require 'rubygems' +require 'sinatra' +require 'json' +set :port, 3123 +set :environment, :production +Dir.chdir(File.dirname(__FILE__) + "/..") + +post "/" do + payload = JSON.parse(params["payload"]) + + if payload["ref"] == "refs/heads/master" + system("rake release_edge &> edge-gem-output.log") + elsif payload["ref"] =~ %r{^refs/heads/(haml|sass)-pages$} + system("rake pages PROJ=#{$1}") + end +end