autoproj 2.0.0.rc32 → 2.0.0.rc33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +2 -0
- data/autoproj.gemspec +3 -1
- data/bin/autoproj_bootstrap +94 -99
- data/bin/autoproj_install +94 -99
- data/lib/autoproj/autobuild.rb +1 -1
- data/lib/autoproj/configuration.rb +4 -26
- data/lib/autoproj/ops/install.rb +94 -99
- data/lib/autoproj/package_managers/bundler_manager.rb +42 -21
- data/lib/autoproj/test.rb +155 -5
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +7 -12
- metadata +2 -2
data/lib/autoproj/autobuild.rb
CHANGED
@@ -217,28 +217,6 @@ def self.gems_path_suffix
|
|
217
217
|
relative_path_from(Pathname.new(dot_gem_dir)).to_s
|
218
218
|
end
|
219
219
|
|
220
|
-
# The gem install root into which the bundler and autoproj gems, as well
|
221
|
-
# as autoproj's dependencies, are installed
|
222
|
-
#
|
223
|
-
# Note that while this setting is separated from the other gems path,
|
224
|
-
# the only way to reliably isolate the gems of an autoproj workspace is
|
225
|
-
# to separate both the autoproj gems and the workspace gems.
|
226
|
-
#
|
227
|
-
# The gems are actually installed under a platform and version-specific
|
228
|
-
# subdirectory (returned by {#gems_path_suffix})
|
229
|
-
#
|
230
|
-
# @return [String]
|
231
|
-
def autoproj_install_path
|
232
|
-
get('autoproj_install_path')
|
233
|
-
end
|
234
|
-
|
235
|
-
# The GEM_HOME into which the autoproj gem and its dependencies are installed
|
236
|
-
#
|
237
|
-
# @return [String]
|
238
|
-
def autoproj_gem_home
|
239
|
-
File.join(autoproj_install_path, self.class.gems_path_suffix)
|
240
|
-
end
|
241
|
-
|
242
220
|
# The gem install root into which the workspace gems are installed
|
243
221
|
#
|
244
222
|
# Note that while this setting is separated from the other gems path,
|
@@ -251,16 +229,16 @@ def autoproj_gem_home
|
|
251
229
|
#
|
252
230
|
# @param [Workspace] ws the workspace whose gems are being considered
|
253
231
|
# @return [String]
|
254
|
-
def gems_install_path
|
255
|
-
|
232
|
+
def gems_install_path
|
233
|
+
get('gems_install_path')
|
256
234
|
end
|
257
235
|
|
258
236
|
# The GEM_HOME into which the workspace gems are installed
|
259
237
|
#
|
260
238
|
# @param [Workspace] ws the workspace whose gems are being considered
|
261
239
|
# @return [String]
|
262
|
-
def gems_gem_home
|
263
|
-
File.join(gems_install_path
|
240
|
+
def gems_gem_home
|
241
|
+
File.join(gems_install_path, self.class.gems_path_suffix)
|
264
242
|
end
|
265
243
|
|
266
244
|
# The full path to the expected ruby executable
|
data/lib/autoproj/ops/install.rb
CHANGED
@@ -31,12 +31,8 @@ class UnexpectedBinstub < RuntimeError; end
|
|
31
31
|
|
32
32
|
def initialize(root_dir)
|
33
33
|
@root_dir = root_dir
|
34
|
-
if File.file?(autoproj_gemfile_path)
|
35
|
-
@gemfile = File.read(autoproj_gemfile_path)
|
36
|
-
else
|
37
|
-
@gemfile = default_gemfile_contents
|
38
|
-
end
|
39
34
|
@gem_source = "https://rubygems.org"
|
35
|
+
@gemfile = nil
|
40
36
|
|
41
37
|
@autoproj_options = Array.new
|
42
38
|
|
@@ -56,7 +52,6 @@ def initialize(root_dir)
|
|
56
52
|
|
57
53
|
default_gem_path = File.join(Dir.home, '.autoproj', 'gems')
|
58
54
|
@gems_install_path = default_gem_path
|
59
|
-
@autoproj_install_path = default_gem_path
|
60
55
|
end
|
61
56
|
|
62
57
|
def env_for_child
|
@@ -126,33 +121,10 @@ def gem_path_suffix
|
|
126
121
|
relative_path_from(Pathname.new(dot_gem_dir)).to_s
|
127
122
|
end
|
128
123
|
|
129
|
-
# The path into which autoproj and its dependencies should be installed
|
130
|
-
#
|
131
|
-
# They are installed in a versioned subdirectory of this path, e.g.
|
132
|
-
# {#gem_path_suffix}. It is always absolute.
|
133
|
-
#
|
134
|
-
# @return [String]
|
135
|
-
attr_reader :autoproj_install_path
|
136
|
-
# The GEM_HOME into which the autoproj gems should be installed
|
137
|
-
def autoproj_gem_home; File.join(autoproj_install_path, gem_path_suffix) end
|
138
|
-
# Sets the place where autoproj should be installed
|
139
|
-
#
|
140
|
-
# @param [String] path Sets the path given to bundler, i.e. the
|
141
|
-
# gems will be installed under the {#gem_path_suffix}
|
142
|
-
def autoproj_install_path=(path)
|
143
|
-
@autoproj_install_path = File.expand_path(path)
|
144
|
-
end
|
145
|
-
# Install autoproj in Gem's default user dir
|
146
|
-
def install_autoproj_in_gem_user_dir
|
147
|
-
@autoproj_install_path = File.join(Gem.user_home, '.gem')
|
148
|
-
end
|
149
|
-
|
150
124
|
# The path into which the workspace's gems should be installed
|
151
125
|
#
|
152
126
|
# They are installed in a versioned subdirectory of this path, e.g.
|
153
|
-
# {#gem_path_suffix}.
|
154
|
-
# relative, in which case it is relative to the workspace's prefix
|
155
|
-
# directory.
|
127
|
+
# {#gem_path_suffix}.
|
156
128
|
#
|
157
129
|
# @return [String]
|
158
130
|
attr_reader :gems_install_path
|
@@ -180,7 +152,7 @@ def prefer_indep_over_os_packages?; @prefer_indep_over_os_packages end
|
|
180
152
|
# (see #prefer_index_over_os_packages?)
|
181
153
|
def prefer_indep_over_os_packages=(flag); @prefer_indep_over_os_packages = !!flag end
|
182
154
|
|
183
|
-
def guess_gem_program
|
155
|
+
def self.guess_gem_program
|
184
156
|
ruby_bin = RbConfig::CONFIG['RUBY_INSTALL_NAME']
|
185
157
|
ruby_bindir = RbConfig::CONFIG['bindir']
|
186
158
|
|
@@ -215,25 +187,24 @@ def parse_options(args = ARGV)
|
|
215
187
|
@local = true
|
216
188
|
end
|
217
189
|
opt.on '--gem-source=URL', String, "use this source for RubyGems instead of rubygems.org" do |url|
|
218
|
-
|
190
|
+
@gem_source = url
|
219
191
|
end
|
220
|
-
opt.on '--
|
221
|
-
|
222
|
-
self.autoproj_install_path = path
|
223
|
-
self.gems_install_path = path
|
224
|
-
else
|
225
|
-
self.install_autoproj_in_gem_user_dir
|
226
|
-
self.install_gems_in_gem_user_dir
|
227
|
-
end
|
192
|
+
opt.on '--gems-path=PATH', "install gems under this path instead of ~/.autoproj/gems" do |path|
|
193
|
+
self.gems_install_path = path
|
228
194
|
end
|
229
|
-
opt.on '--
|
230
|
-
self.
|
231
|
-
self.gems_install_path = 'gems'
|
195
|
+
opt.on '--public-gems', "install gems in the default gem location" do
|
196
|
+
self.install_gems_in_gem_user_dir
|
232
197
|
end
|
233
198
|
opt.on '--version=VERSION_CONSTRAINT', String, 'use the provided string as a version constraint for autoproj' do |version|
|
199
|
+
if @gemfile
|
200
|
+
raise "cannot give both --version and --gemfile"
|
201
|
+
end
|
234
202
|
@gemfile = default_gemfile_contents(version)
|
235
203
|
end
|
236
204
|
opt.on '--gemfile=PATH', String, 'use the given Gemfile to install autoproj instead of the default' do |path|
|
205
|
+
if @gemfile
|
206
|
+
raise "cannot give both --version and --gemfile"
|
207
|
+
end
|
237
208
|
@gemfile = File.read(path)
|
238
209
|
end
|
239
210
|
opt.on '--seed-config=PATH', String, 'path to a seed file that should be used to initialize the configuration' do |path|
|
@@ -264,7 +235,7 @@ def find_bundler(gem_program)
|
|
264
235
|
out: '/dev/null')
|
265
236
|
return if !result
|
266
237
|
|
267
|
-
bundler_path = File.join(
|
238
|
+
bundler_path = File.join(gems_gem_home, 'bin', 'bundler')
|
268
239
|
if File.exist?(bundler_path)
|
269
240
|
bundler_path
|
270
241
|
end
|
@@ -277,14 +248,14 @@ def install_bundler(gem_program)
|
|
277
248
|
env_for_child,
|
278
249
|
Gem.ruby, gem_program, 'install', '--env-shebang', '--no-document', '--no-format-executable', '--clear-sources', '--source', gem_source,
|
279
250
|
*local,
|
280
|
-
"--bindir=#{File.join(
|
251
|
+
"--bindir=#{File.join(gems_gem_home, 'bin')}", 'bundler')
|
281
252
|
|
282
253
|
if !result
|
283
|
-
STDERR.puts "FATAL: failed to install bundler in #{
|
254
|
+
STDERR.puts "FATAL: failed to install bundler in #{gems_gem_home}"
|
284
255
|
nil
|
285
256
|
end
|
286
257
|
|
287
|
-
bundler_path = File.join(
|
258
|
+
bundler_path = File.join(gems_gem_home, 'bin', 'bundler')
|
288
259
|
if File.exist?(bundler_path)
|
289
260
|
bundler_path
|
290
261
|
else
|
@@ -305,7 +276,7 @@ def install_autoproj(bundler)
|
|
305
276
|
|
306
277
|
opts = Array.new
|
307
278
|
opts << '--local' if local?
|
308
|
-
opts << "--path=#{
|
279
|
+
opts << "--path=#{gems_install_path}"
|
309
280
|
shims_path = File.join(dot_autoproj, 'bin')
|
310
281
|
result = system(clean_env,
|
311
282
|
Gem.ruby, bundler, 'install',
|
@@ -319,39 +290,69 @@ def install_autoproj(bundler)
|
|
319
290
|
exit 1
|
320
291
|
end
|
321
292
|
ensure
|
322
|
-
self.class.
|
293
|
+
self.class.rewrite_shims(shims_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
323
294
|
end
|
324
295
|
|
325
|
-
def self.
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
end
|
296
|
+
def self.rewrite_shims(shim_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
297
|
+
FileUtils.mkdir_p shim_path
|
298
|
+
File.open(File.join(shim_path, 'ruby'), 'w') do |io|
|
299
|
+
io.puts "#! /bin/sh"
|
300
|
+
io.puts "exec #{ruby_executable} \"$@\""
|
331
301
|
end
|
302
|
+
FileUtils.chmod 0755, File.join(shim_path, 'ruby')
|
332
303
|
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
io.write filtered.join("")
|
304
|
+
FileUtils.touch File.join(shim_path, 'bundler')
|
305
|
+
FileUtils.touch File.join(shim_path, 'bundle')
|
306
|
+
Dir.glob(File.join(shim_path, '*')) do |bin_script|
|
307
|
+
next if !File.file?(bin_script)
|
308
|
+
bin_name = File.basename(bin_script)
|
309
|
+
next if bin_name == 'ruby'
|
310
|
+
|
311
|
+
bin_shim = File.join(shim_path, bin_name)
|
312
|
+
bin_script_lines = File.readlines(bin_script)
|
313
|
+
File.open(bin_shim, 'w') do |io|
|
314
|
+
if bin_name == 'bundler' || bin_name == 'bundle'
|
315
|
+
io.puts shim_bundler(ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
316
|
+
else
|
317
|
+
load_line = bin_script_lines.grep(/load Gem.bin_path/).first
|
318
|
+
io.puts shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
319
|
+
end
|
350
320
|
end
|
321
|
+
FileUtils.chmod 0755, bin_shim
|
351
322
|
end
|
323
|
+
end
|
352
324
|
|
353
|
-
|
354
|
-
|
325
|
+
def self.shim_bundler(ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
326
|
+
"#! #{ruby_executable}
|
327
|
+
|
328
|
+
if defined?(Bundler)
|
329
|
+
Bundler.with_clean_env do
|
330
|
+
exec($0, *ARGV)
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
ENV.delete('BUNDLE_GEMFILE')
|
335
|
+
ENV['GEM_HOME'] = '#{gems_gem_home}'
|
336
|
+
ENV.delete('GEM_PATH')
|
337
|
+
Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
338
|
+
|
339
|
+
load Gem.bin_path('bundler', 'bundler')"
|
340
|
+
end
|
341
|
+
|
342
|
+
def self.shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
343
|
+
"#! #{ruby_executable}
|
344
|
+
|
345
|
+
if defined?(Bundler)
|
346
|
+
Bundler.with_clean_env do
|
347
|
+
exec($0, *ARGV)
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
ENV['BUNDLE_GEMFILE'] = '#{autoproj_gemfile_path}'
|
352
|
+
require 'rubygems'
|
353
|
+
Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
354
|
+
require 'bundler/setup'
|
355
|
+
#{load_line}"
|
355
356
|
end
|
356
357
|
|
357
358
|
def save_env_sh(*vars)
|
@@ -382,6 +383,15 @@ def save_env_sh(*vars)
|
|
382
383
|
end
|
383
384
|
|
384
385
|
def save_gemfile
|
386
|
+
gemfile =
|
387
|
+
if @gemfile
|
388
|
+
@gemfile
|
389
|
+
elsif File.file?(autoproj_gemfile_path)
|
390
|
+
File.read(autoproj_gemfile_path)
|
391
|
+
else
|
392
|
+
default_gemfile_contents
|
393
|
+
end
|
394
|
+
|
385
395
|
FileUtils.mkdir_p File.dirname(autoproj_gemfile_path)
|
386
396
|
File.open(autoproj_gemfile_path, 'w') do |io|
|
387
397
|
io.write gemfile
|
@@ -424,46 +434,32 @@ def gem_bindir
|
|
424
434
|
end
|
425
435
|
end
|
426
436
|
|
427
|
-
def self.save_ruby_and_bundler_shims(shim_path, ruby_executable, bundler_path)
|
428
|
-
FileUtils.mkdir_p shim_path
|
429
|
-
bundler_rubylib = File.expand_path(File.join('..', '..', 'lib'), bundler_path)
|
430
|
-
File.open(File.join(shim_path, 'bundler'), 'w') do |io|
|
431
|
-
io.puts "#! /bin/sh"
|
432
|
-
io.puts "exec #{ruby_executable} #{bundler_path} \"$@\""
|
433
|
-
end
|
434
|
-
FileUtils.chmod 0755, File.join(shim_path, 'bundler')
|
435
|
-
File.open(File.join(shim_path, 'ruby'), 'w') do |io|
|
436
|
-
io.puts "#! /bin/sh"
|
437
|
-
io.puts "exec #{ruby_executable} \"$@\""
|
438
|
-
end
|
439
|
-
FileUtils.chmod 0755, File.join(shim_path, 'ruby')
|
440
|
-
end
|
441
|
-
|
442
437
|
def install
|
443
438
|
if ENV['BUNDLER_GEMFILE']
|
444
439
|
raise "cannot run autoproj_install or autoproj_bootstrap while under a 'bundler exec' subcommand or having loaded an env.sh. Open a new console and try again"
|
445
440
|
end
|
446
441
|
|
447
|
-
gem_program = guess_gem_program
|
442
|
+
gem_program = self.class.guess_gem_program
|
448
443
|
puts "Detected 'gem' to be #{gem_program}"
|
449
|
-
env['GEM_HOME'] = [
|
444
|
+
env['GEM_HOME'] = [gems_gem_home]
|
450
445
|
|
451
446
|
if bundler = find_bundler(gem_program)
|
452
447
|
puts "Detected bundler at #{bundler}"
|
453
448
|
else
|
454
|
-
puts "Installing bundler in #{
|
449
|
+
puts "Installing bundler in #{gems_gem_home}"
|
455
450
|
if !(bundler = install_bundler(gem_program))
|
456
451
|
exit 1
|
457
452
|
end
|
458
453
|
end
|
459
|
-
self.class.
|
454
|
+
self.class.rewrite_shims(
|
460
455
|
File.join(dot_autoproj, 'bin'),
|
461
456
|
ruby_executable,
|
462
|
-
|
457
|
+
autoproj_gemfile_path,
|
458
|
+
gems_gem_home)
|
463
459
|
env['PATH'].unshift File.join(dot_autoproj, 'bin')
|
464
460
|
save_gemfile
|
465
461
|
|
466
|
-
puts "Installing autoproj in #{
|
462
|
+
puts "Installing autoproj in #{gems_gem_home}"
|
467
463
|
install_autoproj(bundler)
|
468
464
|
end
|
469
465
|
|
@@ -490,13 +486,12 @@ def load_config
|
|
490
486
|
end
|
491
487
|
|
492
488
|
@config = config
|
493
|
-
%w{
|
489
|
+
%w{gems_install_path prefer_indep_over_os_packages}.each do |flag|
|
494
490
|
instance_variable_set "@#{flag}", config.fetch(flag, false)
|
495
491
|
end
|
496
492
|
end
|
497
493
|
|
498
494
|
def save_config
|
499
|
-
config['autoproj_install_path'] = autoproj_install_path
|
500
495
|
config['gems_install_path'] = gems_install_path
|
501
496
|
config['prefer_indep_over_os_packages'] = prefer_indep_over_os_packages?
|
502
497
|
File.open(autoproj_config_path, 'w') { |io| YAML.dump(config, io) }
|
@@ -541,13 +536,13 @@ def stage2(*vars)
|
|
541
536
|
require 'autobuild'
|
542
537
|
puts "saving env.sh and .autoproj/env.sh"
|
543
538
|
save_env_sh(*vars)
|
544
|
-
if !system(Gem.ruby, autoproj_path, 'envsh', *autoproj_options)
|
539
|
+
if !system(Gem.ruby, autoproj_path, 'envsh', *autoproj_options, '--debug')
|
545
540
|
STDERR.puts "failed to run autoproj envsh on the newly installed autoproj (#{autoproj_path})"
|
546
541
|
exit 1
|
547
542
|
end
|
548
543
|
# This is really needed on an existing install to install the
|
549
544
|
# gems that were present in the v1 layout
|
550
|
-
if !system(Gem.ruby, autoproj_path, 'osdeps')
|
545
|
+
if !system(Gem.ruby, autoproj_path, 'osdeps', '--debug')
|
551
546
|
STDERR.puts "failed to run autoproj osdeps on the newly installed autoproj (#{autoproj_path})"
|
552
547
|
exit 1
|
553
548
|
end
|
@@ -38,8 +38,8 @@ def initialize_environment
|
|
38
38
|
|
39
39
|
env.add_path 'PATH', File.join(ws.prefix_dir, 'gems', 'bin')
|
40
40
|
env.add_path 'PATH', File.join(ws.dot_autoproj_dir, 'bin')
|
41
|
-
env.set 'GEM_HOME', config.gems_gem_home
|
42
|
-
env.
|
41
|
+
env.set 'GEM_HOME', config.gems_gem_home
|
42
|
+
env.clear 'GEM_PATH'
|
43
43
|
|
44
44
|
gemfile_path = File.join(ws.prefix_dir, 'gems', 'Gemfile')
|
45
45
|
if File.file?(gemfile_path)
|
@@ -128,34 +128,54 @@ def backup_clean(mapping)
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
def self.run_bundler_install(ws, gemfile, *options, update: true, binstubs: nil)
|
131
|
+
def self.run_bundler_install(ws, gemfile, *options, update: true, binstubs: nil, gem_path: ws.config.gems_install_path)
|
132
132
|
if update && File.file?("#{gemfile}.lock")
|
133
133
|
FileUtils.rm "#{gemfile}.lock"
|
134
134
|
end
|
135
135
|
|
136
|
+
options << '--path' << gem_path
|
136
137
|
options << "--shebang" << Gem.ruby
|
137
138
|
if binstubs
|
138
139
|
options << "--binstubs" << binstubs
|
139
140
|
end
|
140
141
|
|
142
|
+
connections = Set.new
|
143
|
+
run_bundler(ws, 'install', *options, gemfile: gemfile) do |line|
|
144
|
+
case line
|
145
|
+
when /Installing (.*)/
|
146
|
+
Autobuild.message " bundler: installing #{$1}"
|
147
|
+
when /Fetching.*from (.*)/
|
148
|
+
host = $1.gsub(/\.+$/, '')
|
149
|
+
if !connections.include?(host)
|
150
|
+
Autobuild.message " bundler: connected to #{host}"
|
151
|
+
connections << host
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def self.bundle_gem_path(ws, gem_name, gemfile: nil)
|
158
|
+
path = String.new
|
159
|
+
PackageManagers::BundlerManager.run_bundler(ws, 'show', gem_name, gemfile: gemfile) do |line|
|
160
|
+
path << line
|
161
|
+
end
|
162
|
+
path.chomp
|
163
|
+
end
|
164
|
+
|
165
|
+
def self.run_bundler(ws, *commandline, gemfile: nil)
|
141
166
|
Bundler.with_clean_env do
|
142
|
-
|
167
|
+
target_env = Hash[
|
168
|
+
'GEM_HOME' => nil,
|
169
|
+
'GEM_PATH' => nil,
|
170
|
+
'BUNDLE_GEMFILE' => gemfile,
|
171
|
+
'RUBYOPT' => nil,
|
172
|
+
'RUBYLIB' => nil
|
173
|
+
]
|
143
174
|
ws.run 'autoproj', 'osdeps',
|
144
|
-
Autobuild.tool('bundler'),
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
case line
|
149
|
-
when /Installing (.*)/
|
150
|
-
Autobuild.message " bundler: installing #{$1}"
|
151
|
-
when /Fetching.*from (.*)/
|
152
|
-
host = $1.gsub(/\.+$/, '')
|
153
|
-
if !connections.include?(host)
|
154
|
-
Autobuild.message " bundler: connected to #{host}"
|
155
|
-
connections << host
|
156
|
-
end
|
175
|
+
Autobuild.tool('bundler'), *commandline,
|
176
|
+
working_directory: File.dirname(gemfile), env: target_env do |line|
|
177
|
+
yield(line) if block_given?
|
157
178
|
end
|
158
|
-
end
|
159
179
|
end
|
160
180
|
end
|
161
181
|
|
@@ -313,12 +333,13 @@ def discover_bundle_rubylib(silent_errors: false)
|
|
313
333
|
gemfile = File.join(ws.prefix_dir, 'gems', 'Gemfile')
|
314
334
|
silent_redirect = Hash.new
|
315
335
|
if silent_errors
|
316
|
-
silent_redirect[:err] =
|
336
|
+
silent_redirect[:err] = :close
|
317
337
|
end
|
338
|
+
env = ws.env.resolved_env
|
318
339
|
Tempfile.open 'autoproj-rubylib' do |io|
|
319
340
|
result = Bundler.clean_system(
|
320
|
-
Hash['BUNDLE_GEMFILE' => gemfile, 'RUBYLIB' => nil],
|
321
|
-
Autobuild.tool('
|
341
|
+
Hash['GEM_HOME' => env['GEM_HOME'], 'GEM_PATH' => env['GEM_PATH'], 'BUNDLE_GEMFILE' => gemfile, 'RUBYOPT' => nil, 'RUBYLIB' => nil],
|
342
|
+
Autobuild.tool('ruby'), '-rbundler/setup', '-e', 'puts $LOAD_PATH',
|
322
343
|
out: io, **silent_redirect)
|
323
344
|
|
324
345
|
if result
|