6491d70326
Also update tests for itextomml 1.3.25.
102 lines
2.7 KiB
Ruby
102 lines
2.7 KiB
Ruby
# Rakefile for Rack. -*-ruby-*-
|
|
require 'rake/rdoctask'
|
|
|
|
desc "Run all the tests"
|
|
task :default => [:test]
|
|
|
|
desc "Make an archive as .tar.gz"
|
|
task :dist => [:chmod, :changelog, :rdoc, "SPEC"] do
|
|
sh "git archive --format=tar --prefix=#{release}/ HEAD^{tree} >#{release}.tar"
|
|
sh "pax -waf #{release}.tar -s ':^:#{release}/:' SPEC ChangeLog doc rack.gemspec"
|
|
sh "gzip -f -9 #{release}.tar"
|
|
end
|
|
|
|
desc "Make an official release"
|
|
task :officialrelease do
|
|
puts "Official build for #{release}..."
|
|
sh "rm -rf stage"
|
|
sh "git clone --shared . stage"
|
|
sh "cd stage && rake officialrelease_really"
|
|
sh "mv stage/#{release}.tar.gz stage/#{release}.gem ."
|
|
end
|
|
|
|
task :officialrelease_really => ["SPEC", :dist, :gem] do
|
|
sh "sha1sum #{release}.tar.gz #{release}.gem"
|
|
end
|
|
|
|
def release
|
|
require File.dirname(__FILE__) + "/lib/rack"
|
|
"rack-#{Rack.release}.0"
|
|
end
|
|
|
|
desc "Make binaries executable"
|
|
task :chmod do
|
|
Dir["bin/*"].each { |binary| File.chmod(0775, binary) }
|
|
Dir["spec/cgi/spec*"].each { |binary| File.chmod(0775, binary) }
|
|
end
|
|
|
|
desc "Generate a ChangeLog"
|
|
task :changelog do
|
|
File.open("ChangeLog", "w") { |out|
|
|
`git log -z`.split("\0").map { |chunk|
|
|
author = chunk[/Author: (.*)/, 1].strip
|
|
date = chunk[/Date: (.*)/, 1].strip
|
|
desc, detail = $'.strip.split("\n", 2)
|
|
detail ||= ""
|
|
detail = detail.gsub(/.*darcs-hash:.*/, '')
|
|
detail.rstrip!
|
|
out.puts "#{date} #{author}"
|
|
out.puts " * #{desc.strip}"
|
|
out.puts detail unless detail.empty?
|
|
out.puts
|
|
}
|
|
}
|
|
end
|
|
|
|
|
|
desc "Generate Rack Specification"
|
|
task "SPEC" do
|
|
File.open("SPEC", "wb") { |file|
|
|
IO.foreach("lib/rack/lint.rb") { |line|
|
|
if line =~ /## (.*)/
|
|
file.puts $1
|
|
end
|
|
}
|
|
}
|
|
end
|
|
|
|
desc "Run all the fast tests"
|
|
task :test do
|
|
opts = ENV['TEST'] || '-a'
|
|
specopts = ENV['TESTOPTS'] ||
|
|
"-q -t '^(?!Rack::Handler|Rack::Adapter|Rack::Session::Memcache|rackup)'"
|
|
|
|
sh "bacon -I./lib:./spec -w #{opts} #{specopts}"
|
|
end
|
|
|
|
desc "Run all the tests"
|
|
task :fulltest => [:chmod] do
|
|
opts = ENV['TEST'] || '-a'
|
|
specopts = ENV['TESTOPTS'] || '-q'
|
|
sh "bacon -I./lib:./spec -w #{opts} #{specopts}"
|
|
end
|
|
|
|
task :gem => ["SPEC"] do
|
|
sh "gem build rack.gemspec"
|
|
end
|
|
|
|
desc "Generate RDoc documentation"
|
|
task :rdoc => ["SPEC"] do
|
|
sh(*%w{rdoc --line-numbers --main README
|
|
--title 'Rack\ Documentation' --charset utf-8 -U -o doc} +
|
|
%w{README KNOWN-ISSUES SPEC} +
|
|
Dir["lib/**/*.rb"])
|
|
end
|
|
|
|
task :pushsite => [:rdoc] do
|
|
sh "cd site && git gc"
|
|
sh "rsync -avz doc/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/doc/"
|
|
sh "rsync -avz site/ chneukirchen@rack.rubyforge.org:/var/www/gforge-projects/rack/"
|
|
sh "cd site && git push"
|
|
end
|