blob: 48b87e0fa1b5f99261d475a5f1a6844d0a97a610 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
# -*- encoding: utf-8 -*-
$:.unshift File.expand_path("../lib", __FILE__)
require 'bundler/gem_helper'
Bundler::GemHelper.install_tasks
def sudo?
ENV['BUNDLER_SUDO_TESTS']
end
begin
require 'rspec/core/rake_task'
require 'ronn'
desc "Run specs"
RSpec::Core::RakeTask.new do |t|
t.rspec_opts = %w(-fs --color)
t.ruby_opts = %w(-w)
end
task :spec => "man:build"
begin
require 'ci/reporter/rake/rspec'
namespace :ci do
desc "Run specs with Hudson output"
RSpec::Core::RakeTask.new(:spec)
task :spec => ["ci:setup:rspec", "man:build"]
end
rescue LoadError
namespace :ci do
task :spec do
abort "Run `rake ci:deps` to be able to run the CI specs"
end
desc "Install CI dependencies"
task :deps do
sh "gem list ci_reporter | (grep 'ci_reporter' 1> /dev/null) || gem install ci_reporter --no-ri --no-rdoc"
end
task :deps => "spec:deps"
end
end
namespace :spec do
desc "Run the spec suite with the sudo tests"
task :sudo => ["set_sudo", "clean", "spec"]
task :set_sudo do
ENV['BUNDLER_SUDO_TESTS'] = '1'
end
task :clean do
if sudo?
system "sudo rm -rf #{File.expand_path('../tmp', __FILE__)}"
else
rm_rf 'tmp'
end
end
namespace :rubygems do
# Rubygems 1.3.5, 1.3.6, and HEAD specs
rubyopt = ENV["RUBYOPT"]
%w(master REL_1_3_5 REL_1_3_6).each do |rg|
desc "Run specs with Rubygems #{rg}"
RSpec::Core::RakeTask.new(rg) do |t|
t.rspec_opts = %w(-fs --color)
t.ruby_opts = %w(-w)
end
task "clone_rubygems_#{rg}" do
unless File.directory?("tmp/rubygems_#{rg}")
system("git clone git://github.com/rubygems/rubygems.git tmp/rubygems_#{rg} && cd tmp/rubygems_#{rg} && git reset --hard #{rg}")
end
ENV["RUBYOPT"] = "-I#{File.expand_path("tmp/rubygems_#{rg}/lib")} #{rubyopt}"
end
task rg => "clone_rubygems_#{rg}"
task "rubygems:all" => rg
end
end
namespace :ruby do
# Ruby 1.8.6, 1.8.7, and 1.9.2 specs
task "ensure_rvm" do
raise "RVM is not available" unless File.exist?(File.expand_path("~/.rvm/scripts/rvm"))
end
%w(1.8.6-p399 1.8.7-p302 1.9.2-p0).each do |ruby|
ruby_cmd = File.expand_path("~/.rvm/bin/ruby-#{ruby}")
desc "Run specs on Ruby #{ruby}"
RSpec::Core::RakeTask.new(ruby) do |t|
t.rspec_opts = %w(-fs --color)
t.ruby_opts = %w(-w)
end
task "ensure_ruby_#{ruby}" do
raise "Could not find Ruby #{ruby} at #{ruby_cmd}" unless File.exist?(ruby_cmd)
end
task "ensure_ruby_#{ruby}" => "ensure_rvm"
task ruby => "ensure_ruby_#{ruby}"
task "ruby:all" => ruby
end
end
end
rescue LoadError
task :spec do
abort "Run `rake spec:deps` to be able to run the specs"
end
namespace :spec do
desc "Ensure spec dependencies are installed"
task :deps do
sh "gem list ronn | (grep 'ronn' 1> /dev/null) || gem install ronn --no-ri --no-rdoc"
sh "gem list rspec | (grep 'rspec (2.0' 1> /dev/null) || gem install rspec --no-ri --no-rdoc"
end
end
end
namespace :man do
directory "lib/bundler/man"
Dir["man/*.ronn"].each do |ronn|
basename = File.basename(ronn, ".ronn")
roff = "lib/bundler/man/#{basename}"
file roff => ["lib/bundler/man", ronn] do
sh "ronn --roff --pipe #{ronn} > #{roff}"
end
file "#{roff}.txt" => roff do
sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
end
task :build_all_pages => "#{roff}.txt"
end
desc "Build the man pages"
task :build => "man:build_all_pages"
desc "Clean up from the built man pages"
task :clean do
rm_rf "lib/bundler/man"
end
end
namespace :vendor do
desc "Build the vendor dir"
task :build => :clean do
sh "git clone git://github.com/wycats/thor.git lib/bundler/vendor/tmp"
sh "mv lib/bundler/vendor/tmp/lib/* lib/bundler/vendor/"
rm_rf "lib/bundler/vendor/tmp"
end
desc "Clean the vendor dir"
task :clean do
rm_rf "lib/bundler/vendor"
end
end
task :default => :spec
|