Sha256: 71963943702d3cecb7ab3f2aa168a0ea5cd9e48fe64d23c5d2520f2cea531efe

Contents?: true

Size: 1.6 KB

Versions: 42

Compression:

Stored size: 1.6 KB

Contents

#!/usr/bin/env ruby -w

require 'multiruby'

root_dir = Multiruby.root_dir

def setenv dir
  bin  = "#{dir}/bin"
  gem  = Dir["#{dir}/lib/ruby/gems/*"].first

  ENV['PATH'] = bin + File::PATH_SEPARATOR + ENV['PATH']
  ENV['GEM_HOME'] = gem
  ENV['GEM_PATH'] = gem
end

##
# multiruby -1 1.8.7 ruby_args...

if ARGV.first == "-1" then
  ARGV.shift
  vers = Dir["#{root_dir}/install/#{ARGV.shift}*"]

  abort "ambiguous version: #{vers.map { |p| File.basename p }.inspect}" if
    vers.size != 1

  dir = vers.first
  setenv dir

  exec "#{dir}/bin/ruby", *ARGV
end

versions = Multiruby.build_and_install
versions = ENV['VERSIONS'].split(/:/) if ENV.has_key? 'VERSIONS'

if ENV.has_key? 'EXCLUDED_VERSIONS' then
  excludes = Regexp.union(*ENV['EXCLUDED_VERSIONS'].split(/:/))
  versions = versions.delete_if { |v| v =~ excludes }
end

# safekeep original PATH
original_path = ENV['PATH']

results = {}
versions.each do |version|
  dir  = "#{root_dir}/install/#{version}"
  ruby = "#{dir}/bin/ruby"

  ruby.sub!(/bin.ruby/, 'bin/rbx') if version =~ /rubinius/

  puts
  puts "VERSION = #{version}"
  cmd = [ruby, ARGV].flatten.map { |s| s =~ /\"/ ? "'#{s}'" : s }.join(' ')
  cmd.sub!(/#{ENV['HOME']}/, '~')
  puts "CMD     = #{cmd}"
  puts

  setenv dir

  system ruby, *ARGV
  puts
  puts "RESULT = #{$?}"
  results[version] = $?

  # restore the path to original state
  ENV['PATH'] = original_path
end

passed, failed = results.keys.partition { |v| results[v] == 0 }

puts
puts "TOTAL RESULT = #{failed.size} failures out of #{results.size}"
puts
puts "Passed: #{passed.join(", ")}"
puts "Failed: #{failed.join(", ")}"

exit failed.size

Version data entries

42 entries across 42 versions & 9 rubygems

Version Path
cloudsmith-api-0.44.4 vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.2/bin/multiruby
dadapush_client-1.0.1 vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.2/bin/multiruby
ZenTest-4.11.2 bin/multiruby
cloudsmith-api-0.30.7 vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/multiruby
color_me_shop-1.0.0 vendor/bundle/ruby/2.5.0/gems/ZenTest-4.11.1/bin/multiruby
cloudsmith-api-0.21.4 vendor/bundle/ruby/2.3.0/gems/ZenTest-4.11.1/bin/multiruby
ZenTest-4.11.1 bin/multiruby
dwolla_swagger-1.0.6 vendor/bundle/ruby/2.2.0/gems/ZenTest-4.11.0/bin/multiruby
ZenTest-4.11.0 bin/multiruby
ZenTest-4.10.1 bin/multiruby
ZenTest-4.10.0 bin/multiruby
ZenTest-4.9.5 bin/multiruby
ZenTest-4.9.4 bin/multiruby
ZenTest-4.9.3 bin/multiruby
ZenTest-4.9.2 bin/multiruby
ZenTest-4.9.1 bin/multiruby
ZenTest-4.9.0 bin/multiruby
ZenTest-4.8.4 bin/multiruby
ZenTest-4.8.3 bin/multiruby
ZenTest-4.8.2 bin/multiruby