autoproj 2.4.0 → 2.5.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -5
- data/README.md +4 -2
- data/autoproj.gemspec +9 -4
- data/bin/autoproj_bootstrap +10 -8
- data/bin/autoproj_install +10 -8
- data/lib/autoproj.rb +11 -0
- data/lib/autoproj/aruba_minitest.rb +66 -0
- data/lib/autoproj/autobuild_extensions/git.rb +6 -5
- data/lib/autoproj/cli/commit.rb +28 -13
- data/lib/autoproj/cli/exec.rb +42 -7
- data/lib/autoproj/cli/main.rb +53 -8
- data/lib/autoproj/cli/reset.rb +3 -2
- data/lib/autoproj/cli/status.rb +4 -1
- data/lib/autoproj/cli/versions.rb +3 -3
- data/lib/autoproj/cli/watch.rb +159 -0
- data/lib/autoproj/cli/which.rb +45 -7
- data/lib/autoproj/configuration.rb +69 -17
- data/lib/autoproj/environment.rb +1 -1
- data/lib/autoproj/exceptions.rb +5 -0
- data/lib/autoproj/installation_manifest.rb +2 -2
- data/lib/autoproj/ops/atomic_write.rb +36 -0
- data/lib/autoproj/ops/cached_env.rb +36 -0
- data/lib/autoproj/ops/import.rb +1 -1
- data/lib/autoproj/ops/install.rb +10 -8
- data/lib/autoproj/ops/watch.rb +37 -0
- data/lib/autoproj/ops/which.rb +45 -0
- data/lib/autoproj/package_managers/bundler_manager.rb +3 -3
- data/lib/autoproj/package_managers/pip_manager.rb +2 -1
- data/lib/autoproj/test.rb +1 -2
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +18 -32
- metadata +58 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb1e051f18d65cbf0b5d3d2b57efd6f31e84b711
|
4
|
+
data.tar.gz: b2471080ab735a3bc2820de40c287d01b2bb11b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 658959ed15d63a6b1b9cffb0eebc11e5be6ee4edda4f472dc4f5c4440726adc6e146cbf4f885cc52906385654c87414630d424add128d000c21a409cd8b6c503
|
7
|
+
data.tar.gz: 4a311895224ae16098f47e587a0dac2d1b0b9de50653f6a287b0a3c8e7d53036e2451315a441850c0faa1454240a0c1dc14c713cffd50f0e20b4c40e9926d4d2
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,8 +3,8 @@ language: ruby
|
|
3
3
|
rvm:
|
4
4
|
- 2.1.10
|
5
5
|
- 2.2.5
|
6
|
-
- 2.3.
|
7
|
-
- 2.4.
|
6
|
+
- 2.3.6
|
7
|
+
- 2.4.3
|
8
8
|
- 2.5.0
|
9
9
|
- jruby-9.1.15.0
|
10
10
|
matrix:
|
@@ -18,7 +18,7 @@ install:
|
|
18
18
|
- git config --global user.email "autoproj@travis"
|
19
19
|
- gem install bundler
|
20
20
|
# Some tests expect gems to be present in vendor/bundle
|
21
|
-
-
|
21
|
+
- bundle install --path vendor/bundle
|
22
22
|
script:
|
23
|
-
-
|
24
|
-
- AUTOPROJ_SKIP_LONG_TESTS=1
|
23
|
+
- bundle exec rake
|
24
|
+
- AUTOPROJ_SKIP_LONG_TESTS=1 bundle exec rake test
|
data/README.md
CHANGED
@@ -237,15 +237,17 @@ bypassing any check. Great for CI environments.
|
|
237
237
|
The best way to use autoproj 2.x from git is to checkout autoproj and
|
238
238
|
autobuild manually, and write a Gemfile.autoproj-2.0 containing
|
239
239
|
|
240
|
+
```
|
240
241
|
source "https://rubygems.org"
|
241
242
|
gem "autoproj", path: '/home/doudou/dev/gems/autoproj'
|
242
243
|
gem "autobuild", path: '/home/doudou/dev/gems/autobuild'
|
243
244
|
gem "utilrb", ">= 3.0.0.a"
|
244
|
-
|
245
|
+
```
|
245
246
|
Then, pass this gemfile to the --gemfile argument to autoproj_install
|
246
247
|
or autoproj_bootstrap. Note that one can re-run autoproj_install in an
|
247
248
|
already bootstrapped autoproj workspace, e.g.
|
248
249
|
|
250
|
+
```
|
249
251
|
wget https://raw.githubusercontent.com/rock-core/autoproj/master/bin/autoproj_install
|
250
252
|
ruby autoproj_install --gemfile=../Gemfile.autoproj-2.0
|
251
|
-
|
253
|
+
```
|
data/autoproj.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
require 'rbconfig'
|
3
|
+
|
2
4
|
lib = File.expand_path('../lib', __FILE__)
|
3
5
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
6
|
require 'autoproj/version'
|
@@ -23,15 +25,18 @@ Gem::Specification.new do |s|
|
|
23
25
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
26
|
|
25
27
|
s.add_runtime_dependency "bundler"
|
26
|
-
s.add_runtime_dependency "autobuild", ">= 1.
|
28
|
+
s.add_runtime_dependency "autobuild", ">= 1.13.0.a"
|
29
|
+
s.add_runtime_dependency "backports", '~> 3.0'
|
27
30
|
s.add_runtime_dependency "utilrb", '~> 3.0.0', ">= 3.0.0"
|
28
|
-
s.add_runtime_dependency "thor", '~> 0.
|
31
|
+
s.add_runtime_dependency "thor", '~> 0.20.0'
|
29
32
|
s.add_runtime_dependency 'concurrent-ruby', '~> 1.0.0', '>= 1.0.0'
|
30
33
|
s.add_runtime_dependency 'tty-color', '~> 0.4.0', '>= 0.4.0'
|
31
|
-
s.add_runtime_dependency 'tty-prompt', '~> 0.
|
32
|
-
s.add_runtime_dependency 'tty-spinner', '~> 0.
|
34
|
+
s.add_runtime_dependency 'tty-prompt', '~> 0.15.0'
|
35
|
+
s.add_runtime_dependency 'tty-spinner', '~> 0.8.0'
|
36
|
+
s.add_runtime_dependency 'rb-inotify' if RbConfig::CONFIG['target_os'] =~ /linux/
|
33
37
|
s.add_development_dependency "flexmock", '~> 2.0', ">= 2.0.0"
|
34
38
|
s.add_development_dependency "minitest", "~> 5.0", ">= 5.0"
|
35
39
|
s.add_development_dependency "simplecov"
|
40
|
+
s.add_development_dependency "aruba"
|
36
41
|
end
|
37
42
|
|
data/bin/autoproj_bootstrap
CHANGED
@@ -23,7 +23,7 @@ module Autoproj
|
|
23
23
|
class Install
|
24
24
|
class UnexpectedBinstub < RuntimeError; end
|
25
25
|
|
26
|
-
# The
|
26
|
+
# The created workspace's root directory
|
27
27
|
attr_reader :root_dir
|
28
28
|
# Content of the Gemfile generated to install autoproj itself
|
29
29
|
attr_accessor :gemfile
|
@@ -316,12 +316,12 @@ module Autoproj
|
|
316
316
|
exit 1
|
317
317
|
end
|
318
318
|
ensure
|
319
|
-
self.class.rewrite_shims(shims_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
319
|
+
self.class.rewrite_shims(shims_path, ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home)
|
320
320
|
end
|
321
321
|
|
322
322
|
EXCLUDED_FROM_SHIMS = %w{rake thor}
|
323
323
|
|
324
|
-
def self.rewrite_shims(shim_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
324
|
+
def self.rewrite_shims(shim_path, ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home)
|
325
325
|
FileUtils.mkdir_p shim_path
|
326
326
|
File.open(File.join(shim_path, 'ruby'), 'w') do |io|
|
327
327
|
io.puts "#! /bin/sh"
|
@@ -347,7 +347,7 @@ module Autoproj
|
|
347
347
|
io.puts shim_bundler(ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
348
348
|
else
|
349
349
|
load_line = bin_script_lines.grep(/load Gem.bin_path/).first
|
350
|
-
io.puts shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
350
|
+
io.puts shim_script(ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home, load_line)
|
351
351
|
end
|
352
352
|
end
|
353
353
|
FileUtils.chmod 0755, bin_shim
|
@@ -371,7 +371,7 @@ Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
|
371
371
|
load Gem.bin_path('bundler', 'bundler')"
|
372
372
|
end
|
373
373
|
|
374
|
-
def self.shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
374
|
+
def self.shim_script(ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home, load_line)
|
375
375
|
"#! #{ruby_executable}
|
376
376
|
|
377
377
|
if defined?(Bundler)
|
@@ -383,6 +383,7 @@ elsif ENV['RUBYLIB']
|
|
383
383
|
end
|
384
384
|
|
385
385
|
ENV['BUNDLE_GEMFILE'] = '#{autoproj_gemfile_path}'
|
386
|
+
ENV['AUTOPROJ_CURRENT_ROOT'] = '#{root_dir}'
|
386
387
|
require 'rubygems'
|
387
388
|
Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
388
389
|
require 'bundler/setup'
|
@@ -431,7 +432,7 @@ require 'bundler/setup'
|
|
431
432
|
"config_path = File.join(__dir__, 'config.yml')",
|
432
433
|
"if File.file?(config_path)",
|
433
434
|
" require 'yaml'",
|
434
|
-
" config = YAML.load(File.read(config_path))",
|
435
|
+
" config = YAML.load(File.read(config_path)) || Hash.new",
|
435
436
|
" (config['plugins'] || Hash.new).each do |plugin_name, (version, options)|",
|
436
437
|
" gem plugin_name, version, **options",
|
437
438
|
" end",
|
@@ -500,6 +501,7 @@ require 'bundler/setup'
|
|
500
501
|
self.class.rewrite_shims(
|
501
502
|
File.join(dot_autoproj, 'bin'),
|
502
503
|
ruby_executable,
|
504
|
+
root_dir,
|
503
505
|
autoproj_gemfile_path,
|
504
506
|
gems_gem_home)
|
505
507
|
env['PATH'].unshift File.join(dot_autoproj, 'bin')
|
@@ -514,10 +516,10 @@ require 'bundler/setup'
|
|
514
516
|
|
515
517
|
config = Hash.new
|
516
518
|
if File.file?(v1_config_path)
|
517
|
-
config.merge!(YAML.load(File.read(v1_config_path)))
|
519
|
+
config.merge!(YAML.load(File.read(v1_config_path)) || Hash.new)
|
518
520
|
end
|
519
521
|
if File.file?(autoproj_config_path)
|
520
|
-
config.merge!(YAML.load(File.read(autoproj_config_path)))
|
522
|
+
config.merge!(YAML.load(File.read(autoproj_config_path)) || Hash.new)
|
521
523
|
end
|
522
524
|
|
523
525
|
ruby = RbConfig::CONFIG['RUBY_INSTALL_NAME']
|
data/bin/autoproj_install
CHANGED
@@ -23,7 +23,7 @@ module Autoproj
|
|
23
23
|
class Install
|
24
24
|
class UnexpectedBinstub < RuntimeError; end
|
25
25
|
|
26
|
-
# The
|
26
|
+
# The created workspace's root directory
|
27
27
|
attr_reader :root_dir
|
28
28
|
# Content of the Gemfile generated to install autoproj itself
|
29
29
|
attr_accessor :gemfile
|
@@ -316,12 +316,12 @@ module Autoproj
|
|
316
316
|
exit 1
|
317
317
|
end
|
318
318
|
ensure
|
319
|
-
self.class.rewrite_shims(shims_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
319
|
+
self.class.rewrite_shims(shims_path, ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home)
|
320
320
|
end
|
321
321
|
|
322
322
|
EXCLUDED_FROM_SHIMS = %w{rake thor}
|
323
323
|
|
324
|
-
def self.rewrite_shims(shim_path, ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
324
|
+
def self.rewrite_shims(shim_path, ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home)
|
325
325
|
FileUtils.mkdir_p shim_path
|
326
326
|
File.open(File.join(shim_path, 'ruby'), 'w') do |io|
|
327
327
|
io.puts "#! /bin/sh"
|
@@ -347,7 +347,7 @@ module Autoproj
|
|
347
347
|
io.puts shim_bundler(ruby_executable, autoproj_gemfile_path, gems_gem_home)
|
348
348
|
else
|
349
349
|
load_line = bin_script_lines.grep(/load Gem.bin_path/).first
|
350
|
-
io.puts shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
350
|
+
io.puts shim_script(ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home, load_line)
|
351
351
|
end
|
352
352
|
end
|
353
353
|
FileUtils.chmod 0755, bin_shim
|
@@ -371,7 +371,7 @@ Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
|
371
371
|
load Gem.bin_path('bundler', 'bundler')"
|
372
372
|
end
|
373
373
|
|
374
|
-
def self.shim_script(ruby_executable, autoproj_gemfile_path, gems_gem_home, load_line)
|
374
|
+
def self.shim_script(ruby_executable, root_dir, autoproj_gemfile_path, gems_gem_home, load_line)
|
375
375
|
"#! #{ruby_executable}
|
376
376
|
|
377
377
|
if defined?(Bundler)
|
@@ -383,6 +383,7 @@ elsif ENV['RUBYLIB']
|
|
383
383
|
end
|
384
384
|
|
385
385
|
ENV['BUNDLE_GEMFILE'] = '#{autoproj_gemfile_path}'
|
386
|
+
ENV['AUTOPROJ_CURRENT_ROOT'] = '#{root_dir}'
|
386
387
|
require 'rubygems'
|
387
388
|
Gem.paths = Hash['GEM_HOME' => '#{gems_gem_home}', 'GEM_PATH' => '']
|
388
389
|
require 'bundler/setup'
|
@@ -431,7 +432,7 @@ require 'bundler/setup'
|
|
431
432
|
"config_path = File.join(__dir__, 'config.yml')",
|
432
433
|
"if File.file?(config_path)",
|
433
434
|
" require 'yaml'",
|
434
|
-
" config = YAML.load(File.read(config_path))",
|
435
|
+
" config = YAML.load(File.read(config_path)) || Hash.new",
|
435
436
|
" (config['plugins'] || Hash.new).each do |plugin_name, (version, options)|",
|
436
437
|
" gem plugin_name, version, **options",
|
437
438
|
" end",
|
@@ -500,6 +501,7 @@ require 'bundler/setup'
|
|
500
501
|
self.class.rewrite_shims(
|
501
502
|
File.join(dot_autoproj, 'bin'),
|
502
503
|
ruby_executable,
|
504
|
+
root_dir,
|
503
505
|
autoproj_gemfile_path,
|
504
506
|
gems_gem_home)
|
505
507
|
env['PATH'].unshift File.join(dot_autoproj, 'bin')
|
@@ -514,10 +516,10 @@ require 'bundler/setup'
|
|
514
516
|
|
515
517
|
config = Hash.new
|
516
518
|
if File.file?(v1_config_path)
|
517
|
-
config.merge!(YAML.load(File.read(v1_config_path)))
|
519
|
+
config.merge!(YAML.load(File.read(v1_config_path)) || Hash.new)
|
518
520
|
end
|
519
521
|
if File.file?(autoproj_config_path)
|
520
|
-
config.merge!(YAML.load(File.read(autoproj_config_path)))
|
522
|
+
config.merge!(YAML.load(File.read(autoproj_config_path)) || Hash.new)
|
521
523
|
end
|
522
524
|
|
523
525
|
ruby = RbConfig::CONFIG['RUBY_INSTALL_NAME']
|
data/lib/autoproj.rb
CHANGED
@@ -3,6 +3,13 @@
|
|
3
3
|
require 'utilrb/module/attr_predicate'
|
4
4
|
require 'pathname'
|
5
5
|
require 'concurrent'
|
6
|
+
|
7
|
+
require 'backports/2.4.0/float/dup'
|
8
|
+
require 'backports/2.4.0/fixnum/dup'
|
9
|
+
require 'backports/2.4.0/nil_class/dup'
|
10
|
+
require 'backports/2.4.0/false_class/dup'
|
11
|
+
require 'backports/2.4.0/true_class/dup'
|
12
|
+
|
6
13
|
require 'autobuild'
|
7
14
|
require 'autoproj/autobuild'
|
8
15
|
require 'autoproj/base'
|
@@ -35,9 +42,13 @@
|
|
35
42
|
require 'autoproj/source_package_query'
|
36
43
|
require 'autoproj/os_package_query'
|
37
44
|
|
45
|
+
require 'autoproj/ops/install'
|
38
46
|
require 'autoproj/ops/tools'
|
39
47
|
require 'autoproj/ops/loader'
|
40
48
|
require 'autoproj/ops/configuration'
|
49
|
+
require 'autoproj/ops/cached_env'
|
50
|
+
require 'autoproj/ops/which'
|
51
|
+
require 'autoproj/ops/atomic_write'
|
41
52
|
|
42
53
|
require 'autoproj/workspace'
|
43
54
|
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'aruba/api'
|
2
|
+
|
3
|
+
module Autoproj
|
4
|
+
# Minitest-usable Aruba wrapper
|
5
|
+
#
|
6
|
+
# Aruba 0.14 is incompatible with Minitest because of their definition
|
7
|
+
# of the #run method This change hacks around the problem, by moving
|
8
|
+
# the Aruba API to a side stub object.
|
9
|
+
#
|
10
|
+
# The run methods are renamed as they have been renamed in Aruba 1.0
|
11
|
+
# alpha, run -> run_command and run_simple -> run_command_and_stop
|
12
|
+
module ArubaMinitest
|
13
|
+
class API
|
14
|
+
include ::Aruba::Api
|
15
|
+
end
|
16
|
+
|
17
|
+
def setup
|
18
|
+
super
|
19
|
+
@aruba_api = API.new
|
20
|
+
@aruba_api.setup_aruba
|
21
|
+
end
|
22
|
+
|
23
|
+
def teardown
|
24
|
+
stop_all_commands
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
def run_command_and_stop(*args, fail_on_error: true)
|
29
|
+
cmd = run_command(*args)
|
30
|
+
cmd.stop
|
31
|
+
if fail_on_error
|
32
|
+
assert_command_finished_successfully(cmd)
|
33
|
+
end
|
34
|
+
cmd
|
35
|
+
end
|
36
|
+
|
37
|
+
def run_command(*args)
|
38
|
+
@aruba_api.run(*args)
|
39
|
+
end
|
40
|
+
|
41
|
+
def chmod(*args) # also defined by Rake
|
42
|
+
@aruba_api.chmod(*args)
|
43
|
+
end
|
44
|
+
|
45
|
+
def method_missing(m, *args, &block)
|
46
|
+
if @aruba_api.respond_to?(m)
|
47
|
+
return @aruba_api.send(m, *args, &block)
|
48
|
+
else
|
49
|
+
super
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def assert_command_stops(cmd, fail_on_error: true)
|
54
|
+
cmd.stop
|
55
|
+
if fail_on_error
|
56
|
+
assert_command_finished_successfully(cmd)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def assert_command_finished_successfully(cmd)
|
61
|
+
refute cmd.timed_out?, "#{cmd} timed out on stop"
|
62
|
+
assert_equal 0, cmd.exit_status, "#{cmd} finished with a non-zero exit status (#{cmd.exit_status})\n-- STDOUT\n#{cmd.stdout}\n-- STDERR\n#{cmd.stderr}"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
@@ -99,17 +99,18 @@ def snapshot_local(package, options = Hash.new)
|
|
99
99
|
else
|
100
100
|
info['branch'] = branch
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
if options[:exact_state]
|
104
104
|
has_tag, described = describe_rev(package, 'HEAD')
|
105
105
|
if has_tag
|
106
|
-
info
|
106
|
+
info['tag'] = described
|
107
|
+
info['commit'] = nil
|
107
108
|
else
|
108
|
-
info
|
109
|
+
info['tag'] = nil
|
110
|
+
info['commit'] = described
|
109
111
|
end
|
110
|
-
else
|
111
|
-
info
|
112
112
|
end
|
113
|
+
info
|
113
114
|
end
|
114
115
|
end
|
115
116
|
end
|
data/lib/autoproj/cli/commit.rb
CHANGED
@@ -5,34 +5,49 @@
|
|
5
5
|
module Autoproj
|
6
6
|
module CLI
|
7
7
|
class Commit < InspectionTool
|
8
|
-
def
|
9
|
-
|
8
|
+
def default_message(tag_name)
|
9
|
+
if tag_name
|
10
|
+
"autoproj created tag #{tag_name}"
|
11
|
+
else
|
12
|
+
'autoproj created version commit'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def run(user_selection, options = Hash.new)
|
17
|
+
tag_name = options[:tag]
|
18
|
+
ws.load_config
|
19
|
+
pkg = ws.manifest.main_package_set.create_autobuild_package
|
10
20
|
importer = pkg.importer
|
11
21
|
if !importer || !importer.kind_of?(Autobuild::Git)
|
12
|
-
raise CLIInvalidArguments, "cannot use autoproj
|
22
|
+
raise CLIInvalidArguments, "cannot use autoproj commit if the main configuration is not managed by git"
|
13
23
|
end
|
14
24
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
25
|
+
if tag_name
|
26
|
+
begin
|
27
|
+
importer.rev_parse(pkg, "refs/tags/#{tag_name}")
|
28
|
+
raise CLIInvalidArguments, "tag #{tag_name} already exists"
|
29
|
+
rescue Autobuild::PackageException
|
30
|
+
end
|
31
|
+
end
|
19
32
|
|
20
|
-
|
33
|
+
versions_file = File.join(ws.config_dir,
|
34
|
+
Workspace::OVERRIDES_DIR,
|
35
|
+
Versions::DEFAULT_VERSIONS_FILE_BASENAME)
|
21
36
|
|
22
37
|
versions = CLI::Versions.new(ws)
|
23
38
|
Autoproj.message "creating versions file, this may take a while"
|
24
39
|
versions.run(user_selection,
|
25
|
-
save:
|
40
|
+
save: versions_file,
|
26
41
|
package_sets: options[:package_sets],
|
27
|
-
output_file: io.path,
|
28
42
|
replace: true,
|
29
|
-
keep_going: options[:keep_going]
|
43
|
+
keep_going: options[:keep_going],
|
44
|
+
deps: options[:deps])
|
30
45
|
|
31
46
|
importer.run_git(pkg, 'add', versions_file)
|
32
|
-
message = options[:message] ||
|
33
|
-
"autoproj created tag #{tag_name}"
|
47
|
+
message = options[:message] || default_message(tag_name)
|
34
48
|
|
35
49
|
importer.run_git(pkg, 'commit', '-m', message)
|
50
|
+
importer.run_git(pkg, 'tag', tag_name) unless tag_name.nil?
|
36
51
|
end
|
37
52
|
end
|
38
53
|
end
|
data/lib/autoproj/cli/exec.rb
CHANGED
@@ -1,21 +1,56 @@
|
|
1
|
-
require 'autoproj/
|
1
|
+
require 'autoproj/find_workspace'
|
2
|
+
require 'autoproj/ops/cached_env'
|
3
|
+
require 'autoproj/ops/which'
|
4
|
+
require 'autoproj/ops/watch'
|
5
|
+
|
2
6
|
module Autoproj
|
3
7
|
module CLI
|
4
|
-
class Exec
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
+
class Exec
|
9
|
+
def initialize
|
10
|
+
@root_dir = Autoproj.find_workspace_dir
|
11
|
+
if !@root_dir
|
12
|
+
require 'autoproj/workspace'
|
13
|
+
# Will do all sorts of error reporting,
|
14
|
+
# or may be able to resolve
|
15
|
+
@root_dir = Workspace.default.root_dir
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def load_cached_env
|
20
|
+
env = Ops.load_cached_env(@root_dir)
|
21
|
+
return if !env
|
22
|
+
|
23
|
+
Autobuild::Environment.
|
24
|
+
environment_from_export(env, ENV)
|
25
|
+
end
|
26
|
+
|
27
|
+
def run(cmd, *args, use_cached_env: Ops.watch_running?(@root_dir))
|
28
|
+
if use_cached_env
|
29
|
+
env = load_cached_env
|
30
|
+
end
|
31
|
+
|
32
|
+
if !env
|
33
|
+
require 'autoproj'
|
34
|
+
require 'autoproj/cli/inspection_tool'
|
35
|
+
ws = Workspace.from_dir(@root_dir)
|
36
|
+
loader = InspectionTool.new(ws)
|
37
|
+
loader.initialize_and_load
|
38
|
+
loader.finalize_setup(Array.new)
|
39
|
+
env = ws.full_env.resolved_env
|
40
|
+
end
|
8
41
|
|
42
|
+
path = env['PATH'].split(File::PATH_SEPARATOR)
|
9
43
|
program =
|
10
|
-
begin
|
44
|
+
begin Ops.which(cmd, path_entries: path)
|
11
45
|
rescue ::Exception => e
|
46
|
+
require 'autoproj'
|
12
47
|
raise CLIInvalidArguments, e.message, e.backtrace
|
13
48
|
end
|
14
|
-
env = ws.full_env.resolved_env
|
15
49
|
|
16
50
|
begin
|
17
51
|
::Process.exec(env, program, *args)
|
18
52
|
rescue ::Exception => e
|
53
|
+
require 'autoproj'
|
19
54
|
raise CLIInvalidArguments, e.message, e.backtrace
|
20
55
|
end
|
21
56
|
end
|