Created
February 14, 2009 20:24
-
-
Save jwilger/64459 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DEPS_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'deps')) | |
SRC_DIR = File.join(DEPS_DIR, 'src') | |
BIN_DIR = File.join(DEPS_DIR, 'bin') | |
GEM_DIR = File.join(DEPS_DIR, 'lib', 'ruby', 'gems', '1.8', 'gems') | |
desc 'Setup to run before working on project' | |
task :setup => :build do | |
exec "ADDPATH='#{BIN_DIR}' zsh" | |
end | |
desc 'Build software dev environment dependencies' | |
task :build => [DEPS_DIR, SRC_DIR, 'build:ruby', 'build:gems'] | |
file DEPS_DIR do | |
sh "mkdir -pv '#{DEPS_DIR}'" | |
end | |
file SRC_DIR => DEPS_DIR do | |
sh "mkdir -pv '#{SRC_DIR}'" | |
end | |
namespace :build do | |
task :ruby => File.join(BIN_DIR, 'ruby') | |
task :gems => ['gems:gem', 'gems:rake', 'gems:sqlite3', 'gems:mongrel', | |
'gems:rack', 'gems:rspec', 'gems:cucumber', 'gems:webrat', 'gems:Selenium'] | |
file File.join(BIN_DIR, 'ruby') => File.join(SRC_DIR, 'ruby-1.8.7-p72') do | |
sh "cd #{File.join(SRC_DIR, 'ruby-1.8.7-p72')} && " + | |
"./configure --enable-install-doc --prefix=#{DEPS_DIR} && " + | |
"make && make install" | |
end | |
file File.join(SRC_DIR, 'ruby-1.8.7-p72') => File.join(SRC_DIR, 'ruby-1.8.7-p72.tar.bz2') do | |
sh "cd #{SRC_DIR} && " + | |
"tar -jxvf ruby-1.8.7-p72.tar.bz2" | |
end | |
file File.join(SRC_DIR, 'ruby-1.8.7-p72.tar.bz2') do | |
sh "cd #{SRC_DIR} && " + | |
"curl ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.7-p72.tar.bz2 > ruby-1.8.7-p72.tar.bz2" | |
end | |
namespace :gems do | |
task :gem => GEM_DIR | |
file GEM_DIR => File.join(SRC_DIR, 'rubygems-1.3.1') do | |
sh "cd #{File.join(SRC_DIR, 'rubygems-1.3.1')} && " + | |
"#{File.join(BIN_DIR, 'ruby')} ./setup.rb && " + | |
"touch #{GEM_DIR}" | |
end | |
file File.join(SRC_DIR, 'rubygems-1.3.1') => File.join(SRC_DIR, 'rubygems-1.3.1.tgz') do | |
sh "cd #{SRC_DIR} && " + | |
"tar -zxvf rubygems-1.3.1.tgz" | |
end | |
file File.join(SRC_DIR, 'rubygems-1.3.1.tgz') do | |
sh "cd #{SRC_DIR} && " + | |
"curl -L http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz > rubygems-1.3.1.tgz" | |
end | |
task :rake => File.join(GEM_DIR, 'rake-0.8.3') | |
file File.join(GEM_DIR, 'rake-0.8.3') do | |
sh "#{BIN_DIR}/gem install rake -v 0.8.3" | |
end | |
task :sqlite3 => File.join(GEM_DIR, 'sqlite3-ruby-1.2.4') | |
file File.join(GEM_DIR, 'sqlite3-ruby-1.2.4') do | |
sh "#{BIN_DIR}/gem install sqlite3-ruby -v 1.2.4" | |
end | |
task :mongrel => File.join(GEM_DIR, 'mongrel-1.1.5') | |
file File.join(GEM_DIR, 'mongrel-1.1.5') do | |
sh "#{BIN_DIR}/gem install mongrel -v 1.1.5" | |
end | |
task :rspec => File.join(GEM_DIR, 'rspec-rails-1.1.12') | |
file File.join(GEM_DIR, 'rspec-rails-1.1.12') do | |
sh "#{BIN_DIR}/gem install rspec-rails -v 1.1.12" | |
end | |
task :cucumber => File.join(GEM_DIR, 'cucumber-0.1.16') | |
file File.join(GEM_DIR, 'cucumber-0.1.16') do | |
sh "#{BIN_DIR}/gem install cucumber -v 0.1.16" | |
end | |
task :webrat => File.join(GEM_DIR, 'webrat-0.4.1') | |
file File.join(GEM_DIR, 'webrat-0.4.1') do | |
sh "#{BIN_DIR}/gem install webrat -v 0.4.1" | |
end | |
task :Selenium => File.join(GEM_DIR, 'Selenium-1.1.14') | |
file File.join(GEM_DIR, 'Selenium-1.1.14') do | |
sh "#{BIN_DIR}/gem install Selenium -v 1.1.14" | |
end | |
task :rack => File.join(GEM_DIR, 'rack-0.9.1') | |
file File.join(GEM_DIR, 'rack-0.9.1') do | |
sh "#{BIN_DIR}/gem install rack -v 0.9.1" | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment