diff --git a/Rakefile b/Rakefile index 0dcb6635..8de27c35 100644 --- a/Rakefile +++ b/Rakefile @@ -17,7 +17,7 @@ task :default => [:compile, :test] desc "Compiles all extensions" task :compile => [:http11] -task :package => [:clean,:compile] +task :package => [:clean,:compile,:test] task :ragel do sh %{/usr/local/bin/ragel ext/http11/http11_parser.rl | /usr/local/bin/rlcodegen -G2 -o ext/http11/http11_parser.c} @@ -72,10 +72,18 @@ task :package_win32 do end end -task :gem_plugin_project do - sh %{cd projects/gem_plugin; rake gem_test; } + +task :install do + sub_project("gem_plugin", :install) + sh %{rake package} + sh %{sudo gem install pkg/mongrel-#{version}} + sub_project("mongrel_status", :install) + sub_project("mongrel_config", :install) end -task :gem_test => [:gem_plugin_project, :package] do - sh %{sudo gem install pkg/mongrel-#{version}} -end +task :uninstall => [:clean] do + sub_project("mongrel_status", :uninstall) + sub_project("mongrel_config", :uninstall) + sh %{sudo gem uninstall mongrel} + sub_project("gem_plugin", :uninstall) +end diff --git a/projects/gem_plugin/Rakefile b/projects/gem_plugin/Rakefile index 2a98b4c4..0dbfcf29 100644 --- a/projects/gem_plugin/Rakefile +++ b/projects/gem_plugin/Rakefile @@ -26,10 +26,14 @@ setup_gem(name, version) do |spec| scripts=[] end -task :gem_test => [:package] do +task :install => [:test, :package] do sh %{sudo gem install pkg/#{name}-#{version}} end +task :uninstall => [:clean] do + sh %{sudo gem uninstall #{name}} +end + task :site => [:rerdoc] do sh %{ scp -r doc/rdoc/* #{ENV['SSH_USER']}@rubyforge.org:/var/www/gforge-projects/mongrel/gem_plugin_rdoc/ } end diff --git a/projects/mongrel_config/Rakefile b/projects/mongrel_config/Rakefile index 0137dde3..2c3c2799 100644 --- a/projects/mongrel_config/Rakefile +++ b/projects/mongrel_config/Rakefile @@ -16,8 +16,9 @@ desc "Does a full compile, test run" task :default => [:test, :package, :gem_test] version="0.1" +name="mongrel_config" -setup_gem("mongrel_config", version) do |spec| +setup_gem(name, version) do |spec| spec.summary = "Mongrel plugin that gives you web based config tool using Camping" spec.description = spec.summary spec.test_file = "test/test_config.rb" @@ -29,7 +30,11 @@ setup_gem("mongrel_config", version) do |spec| end -task :gem_test do - sh %{sudo gem install pkg/mongrel_config-#{version}.gem} +task :install => [:test, :package] do + sh %{sudo gem install pkg/#{name}-#{version}.gem} +end + +task :uninstall => [:clean] do + sh %{sudo gem uninstall #{name}} end diff --git a/projects/mongrel_status/Rakefile b/projects/mongrel_status/Rakefile index f55e6809..cacfa84f 100644 --- a/projects/mongrel_status/Rakefile +++ b/projects/mongrel_status/Rakefile @@ -27,6 +27,10 @@ setup_gem(name, version) do |spec| spec.add_dependency('gem_plugin', '>= 0.2') end -task :gem_test do +task :install => [:test, :package] do sh %{sudo gem install pkg/#{name}-#{version}.gem} end + +task :uninstall => [:clean] do + sh %{sudo gem uninstall #{name}} +end diff --git a/tools/rakehelp.rb b/tools/rakehelp.rb index 35b9f9c6..959175b9 100644 --- a/tools/rakehelp.rb +++ b/tools/rakehelp.rb @@ -104,4 +104,6 @@ def setup_win32_gem(pkg_name, pkg_version) Gem::Builder.new(spec).build end - +def sub_project(project, target="") + sh %{cd projects/#{project}; rake #{target.to_s}; } +end