Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: 1.11.4
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.