autoproj 2.4.0 → 2.5.0.pre1
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 -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
|