about summary refs log tree commit homepage
path: root/Rakefile
diff options
context:
space:
mode:
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile101
1 files changed, 32 insertions, 69 deletions
diff --git a/Rakefile b/Rakefile
index fd92673..fbe8801 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,48 +1,46 @@
 
 require 'rubygems'
-gem 'echoe', '>=2.7.5'
+gem 'echoe', '>=2.7.11'
 require 'echoe'
 
 e = Echoe.new("mongrel") do |p|
   p.summary = "A small fast HTTP library and server that runs Rails, Camping, Nitro and Iowa apps."
-  p.author ="Zed A. Shaw"
-  p.clean_pattern = ['ext/http11/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'lib/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'ext/http11/Makefile', 'pkg', 'lib/*.bundle', '*.gem', 'site/output', '.config', 'lib/http11.jar', 'ext/http11_java/classes', 'coverage']
+  p.author = "Zed A. Shaw"
+  p.email = "mongrel-development@rubyforge.org"
+  p.clean_pattern = ['ext/http11/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'lib/*.{bundle,so,o,obj,pdb,lib,def,exp}', 'ext/http11/Makefile', 'pkg', 'lib/*.bundle', '*.gem', 'site/output', '.config', 'lib/http11.jar', 'ext/http11_java/classes', 'coverage', 'test_*.log', 'log', 'doc']
   p.url = "http://mongrel.rubyforge.org"
-  p.rdoc_pattern = ['README', 'LICENSE', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
+  p.rdoc_pattern = ['README', 'LICENSE', 'CONTRIBUTORS', 'CHANGELOG', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
+  p.docs_host = 'mongrel.cloudbur.st:/home/eweaver/www/mongrel/htdocs/web'
   p.ignore_pattern = /^(pkg|site|projects|doc|log)|CVS|\.log/
   p.ruby_version = '>=1.8.4'
   p.dependencies = ['gem_plugin >=0.2.3']  
   p.extension_pattern = nil
   
-  p.certificate_chain = case ENV['USER']
+  p.certificate_chain = case (ENV['USER'] || ENV['USERNAME']).downcase
     when 'eweaver'
       ['~/p/configuration/gem_certificates/mongrel/mongrel-public_cert.pem',
        '~/p/configuration/gem_certificates/evan_weaver-mongrel-public_cert.pem']
-    when 'luislavena'
-      ['~/gem_certificates/mongrel-public_cert.pem',
-        '~/gem_certificates/luislavena-mongrel-public_cert.pem']    
+    when 'luislavena', 'luis'
+      ['~/projects/gem_certificates/mongrel-public_cert.pem',
+        '~/projects/gem_certificates/luislavena-mongrel-public_cert.pem']    
   end
   
   p.need_tar_gz = false
   p.need_tgz = true
 
-  if RUBY_PLATFORM !~ /mswin|java/
+  unless Platform.windows? or Platform.java?
     p.extension_pattern = ["ext/**/extconf.rb"]
   end
 
   p.eval = proc do
-    case RUBY_PLATFORM
-    when /mswin/
+    if Platform.windows?
       self.files += ['lib/http11.so']
       self.platform = Gem::Platform::CURRENT
-      add_dependency('cgi_multipart_eof_fix', '>= 2.4')
-    when /java/
+    elsif Platform.java?
       self.files += ['lib/http11.jar']
       self.platform = 'jruby' # XXX Is this right?
     else
       add_dependency('daemons', '>= 1.0.3')
-      add_dependency('fastthread', '>= 1.0.1')
-      add_dependency('cgi_multipart_eof_fix', '>= 2.4')
     end
   end
 
@@ -55,13 +53,13 @@ task :ragel do
   Dir.chdir "ext/http11" do
     target = "http11_parser.c"
     File.unlink target if File.exist? target
-    sh "ragel http11_parser.rl | rlgen-cd -G2 -o #{target}"
+    sh "ragel http11_parser.rl -C -G2 -o #{target}"
     raise "Failed to build C source" unless File.exist? target
   end
   Dir.chdir "ext/http11" do
     target = "../../ext/http11_java/org/jruby/mongrel/Http11Parser.java"
     File.unlink target if File.exist? target
-    sh "ragel -J http11_parser.java.rl | rlgen-java -o #{target}"
+    sh "ragel http11_parser.rl -J -o #{target}"
     raise "Failed to build Java source" unless File.exist? target
   end
 end
@@ -84,19 +82,18 @@ def java_classpath_arg
   classpath ? "-cp #{classpath}" : ""
 end
 
-case RUBY_PLATFORM
-when /mswin/
+if Platform.windows?
   filename = "lib/http11.so"
   file filename do
     Dir.chdir("ext/http11") do
       ruby "extconf.rb"
-      system(PLATFORM =~ /mswin/ ? 'nmake' : 'make')
+      system(Platform.make)
     end
     move_extensions
   end
   task :compile => [filename]
 
-when /java/
+elsif Platform.java?
 
   # Avoid JRuby in-process launching problem
   begin
@@ -123,13 +120,17 @@ end
 def sub_project(project, *targets)
   targets.each do |target|
     Dir.chdir "projects/#{project}" do
-      unless RUBY_PLATFORM =~ /mswin/
-        sh("rake #{target.to_s}") # --trace
-      end
+      sh("#{Platform.rake} #{target.to_s}") # --trace
     end
   end
 end
 
+desc "Compile all the projects"
+task :compile_all => [:compile] do
+  sub_project("fastthread", :compile)
+  sub_project("mongrel_service", :compile)
+end
+
 desc "Package Mongrel and all subprojects"
 task :package_all => [:package] do
   sub_project("gem_plugin", :package)
@@ -141,11 +142,9 @@ task :package_all => [:package] do
   sub_project("mongrel_cluster", :package)
   sub_project("mongrel_experimental", :package)
 
-  sh("rake java package") unless RUBY_PLATFORM =~ /java/
+  sh("rake java package") unless Platform.windows?
   
-  # XXX Broken by RubyGems 0.9.5
-  # sub_project("mongrel_service", :package) if RUBY_PLATFORM =~ /mswin/
-  # sh("rake mswin package") unless RUBY_PLATFORM =~ /mswin/
+  sub_project("mongrel_service", :package) if Platform.windows?
 end
 
 task :install_requirements do
@@ -163,7 +162,7 @@ task :install => [:install_requirements] do
   sub_project("mongrel_console", :install)
   sub_project("mongrel_cluster", :install)
   # sub_project("mongrel_experimental", :install)
-  sub_project("mongrel_service", :install) if RUBY_PLATFORM =~ /mswin/
+  sub_project("mongrel_service", :install) if Platform.windows?
 end
 
 desc "for Mongrel and all its subprojects"
@@ -175,11 +174,11 @@ task :uninstall => [:clean] do
   sub_project("gem_plugin", :uninstall)
   sub_project("fastthread", :uninstall)
   # sub_project("mongrel_experimental", :uninstall)
-  sub_project("mongrel_service", :uninstall) if RUBY_PLATFORM =~ /mswin/
+  sub_project("mongrel_service", :uninstall) if Platform.windows?
 end
 
 desc "for Mongrel and all its subprojects"
-task :clean do
+task :clean_all => [:clean] do
   sub_project("gem_plugin", :clean)
   sub_project("cgi_multipart_eof_fix", :clean)
   sub_project("fastthread", :clean)
@@ -188,50 +187,14 @@ task :clean do
   sub_project("mongrel_console", :clean)
   sub_project("mongrel_cluster", :clean)
   sub_project("mongrel_experimental", :clean)
-  sub_project("mongrel_service", :clean) if RUBY_PLATFORM =~ /mswin/
+  sub_project("mongrel_service", :clean) if Platform.windows?
 end
 
 #### Site upload tasks
 
 namespace :site do
-
-  desc "Package and upload .gem files and .tgz files for Mongrel and all subprojects to http://mongrel.rubyforge.org/releases/"
-  task :source => [:package_all] do
-    rm_rf "pkg/gems"
-    rm_rf "pkg/tars"
-    mkdir_p "pkg/gems"
-    mkdir_p "pkg/tars"
-
-    FileList["**/*.gem"].each { |gem| mv gem, "pkg/gems" }
-    FileList["**/*.tgz"].each {|tgz| mv tgz, "pkg/tars" }
-
-    sh "rm -rf pkg/mongrel*"
-    sh "gem generate_index -d pkg"
-    sh "scp -r CHANGELOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/"
-    sh "svn log -v > SVN_LOG"
-    sh "scp -r SVN_LOG pkg/* rubyforge.org:/var/www/gforge-projects/mongrel/releases/"
-    rm "SVN_LOG"
-  end
-
-  desc "Upload the website"
-  task :web do
-    # Requires the 'webgem' gem
-    sh "cd site; webgen; webgen; curl 'http://feed43.com/mongrel.xml' > output/rss.xml; rsync -azv --no-perms --no-times output/* rubyforge.org:/var/www/gforge-projects/mongrel/"
-    puts "\nMake sure to re-run the site update 6 hours later if you updated the news. This delay is required for Feed43 to pick up the site changes."
-  end
-
-  desc "Upload the rdocs"
-  task :rdoc => [:doc] do
-    sh "rsync -azv --no-perms --no-times doc/* rubyforge.org:/var/www/gforge-projects/mongrel/rdoc/"
-    sh "cd projects/gem_plugin; rake site:rdoc"
-  end
-
   desc "Upload the coverage report"
   task :coverage => [:rcov] do
-    sh "rsync -azv --no-perms --no-times test/coverage/* rubyforge.org:/var/www/gforge-projects/mongrel/coverage/" rescue nil
+    sh "rsync -azv --no-perms --no-times test/coverage/* mongrel.cloudbur.st:/home/eweaver/www/mongrel/htdocs/web/coverage" rescue nil
   end
-
-  desc "Upload the website, the rdocs, and the coverage report"
-  task :all => [:clean, :web, :rdoc, :coverage]
-
 end