Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

132 lines (102 sloc) 3.416 kb
require "rubygems"
require "hoe"
Hoe.spec "rvm" do
developer "Wayne E. Seguin", "wayneeseguin@gmail.com"
# TODO: package the release with the API .gem
#gemspec.files = [
# "README", "sha1", "LICENCE", "rvm.gemspec",
# # TODO: Go through manifest carefully.
# # FOR NOW glob
# Dir::glob("lib/**/**"),
# Dir::glob("releases/rvm-#{RVM::Version::STRING}.tar.gz*")
#].flatten
spec_extras[:rdoc_options] = proc do |ary|
# hoe kinda sucks for this! TODO: submit patch for Hoe#rdoc_options
ary.push "--inline-source", "--charset=UTF-8"
end
spec_extras[:post_install_message] = <<-POST_INSTALL_MESSAGE
#{"*" * 80}
This gem contains only the Ruby libraries for the RVM Ruby API.
In order to install RVM please use one of the methods listed in the
documentation:
https://rvm.beginrescueend.com/rvm/install/
such as,
bash < <(curl -s -B https://rvm.beginrescueend.com/install/rvm)
followed by placing the sourcing line in your ~/.bash_profile or wherever may
be appropriate for your setup (example, .zshenv, /etc/profile, ...):
# Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
After completing setup please open a new shell to use RVM and be sure to run
'rvm notes' to gain a list of dependencies to install before installing the
first Ruby. You can read more details about this process on the above
mentioned install page as well as the basics page:
https://rvm.beginrescueend.com/rvm/basics/
Enjoy!
~Wayne
#{"*" * 80}
POST_INSTALL_MESSAGE
end
task :test do
exec "bash -l -c \"./test/suite\""
end
#
# VirtualBox Helpers
#
# Matches a host declaration in a ssh config file.
HOST_REGEXP = /^\s*Host\s+([^\s#*]+)/
SNAPSHOT = (ENV['SNAPSHOT'] || 'CURRENT').upcase
SSH_CONFIG_FILE = ENV['SSH_CONFIG_FILE'] || File.expand_path('../config/ssh', __FILE__)
def shell(cmd)
puts "$ #{cmd}"
system(cmd)
end
def hosts
@hosts ||= begin
hosts = []
File.open(SSH_CONFIG_FILE) do |io|
io.each_line do |line|
next unless line =~ HOST_REGEXP
hosts << $1
end
end
hosts
end
end
namespace :vbox do
desc "start each vm"
task :start => :stop do
hosts.each do |host|
shell "VBoxManage -q snapshot #{host} restore #{SNAPSHOT}"
shell "VBoxManage -q startvm #{host} --type headless"
shell "ssh -MNf -F '#{SSH_CONFIG_FILE}' '#{host}' >/dev/null 2>&1 </dev/null"
end
end
desc "stop each vm"
task :stop do
hosts.each do |host|
if `VBoxManage -q list runningvms`.include?(host)
shell "VBoxManage -q controlvm #{host} poweroff"
end
end
end
desc 'Run the tests remotely on each VM'
task :test do
begin
Rake::Task["vbox:start"].invoke
Rake::Task["vbox:remote_test"].invoke
ensure
Rake::Task["vbox:stop"].execute(nil)
end
end
desc 'Run the tests remotely (assuming each VM is running)'
task :remote_test do
local_dir = File.expand_path("..", __FILE__)
remote_dir = "$(pwd)/rvm"
remote_script = "vboxtest/test_suite.sh"
sh "'#{File.expand_path("../vboxtest.sh", __FILE__)}' -L '#{local_dir}' -R '#{remote_dir}' -S '#{remote_script}' #{hosts.join(' ')}"
end
desc 'Run the tests locally'
task :local_test do
sh File.expand_path("../vboxtest/test_suite.sh", __FILE__)
end
end
Jump to Line
Something went wrong with that request. Please try again.