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
| | #!/usr/bin/env ruby
# scripts/Makefiles can read and eval the output of this script and
# use it as RUBYLIB
require 'rubygems'
require 'isolate'
fp = File.open(__FILE__, "rb")
fp.flock(File::LOCK_EX)
ruby_engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'
opts = {
:system => false,
# we want "ruby-1.8.7" and not "ruby-1.8", so disable :multiruby
:multiruby => false,
:path => "tmp/isolate/#{ruby_engine}-#{RUBY_VERSION}",
}
pid = fork do
Isolate.now!(opts) do
gem 'raindrops', '0.12.0'
gem 'kgio-monkey', '0.4.0'
gem 'kgio', '2.8.1'
gem 'rack', '1.5.2'
end
end
_, status = Process.waitpid2(pid)
status.success? or abort status.inspect
lib_paths = Dir["#{opts[:path]}/gems/*-*/lib"].map { |x| File.expand_path(x) }
dst = "tmp/isolate/#{ruby_engine}-#{RUBY_VERSION}.mk"
File.open("#{dst}.#$$", "w") do |fp|
fp.puts "ISOLATE_LIBS=#{lib_paths.join(':')}"
end
File.rename("#{dst}.#$$", dst)
|