autoproj 1.13.7 → 2.0.0.b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gemtest +0 -0
- data/Manifest.txt +27 -21
- data/Rakefile +4 -6
- data/bin/alocate +5 -1
- data/bin/amake +3 -53
- data/bin/aup +3 -50
- data/bin/autoproj +3 -264
- data/bin/autoproj_bootstrap +294 -349
- data/bin/autoproj_bootstrap.in +27 -3
- data/lib/autoproj.rb +23 -1
- data/lib/autoproj/autobuild.rb +51 -89
- data/lib/autoproj/base.rb +0 -9
- data/lib/autoproj/build_option.rb +1 -3
- data/lib/autoproj/cli.rb +1 -0
- data/lib/autoproj/cli/base.rb +155 -0
- data/lib/autoproj/cli/bootstrap.rb +119 -0
- data/lib/autoproj/cli/build.rb +72 -0
- data/lib/autoproj/cli/cache.rb +31 -0
- data/lib/autoproj/cli/clean.rb +37 -0
- data/lib/autoproj/cli/commit.rb +41 -0
- data/lib/autoproj/cli/doc.rb +22 -0
- data/lib/autoproj/cli/envsh.rb +22 -0
- data/lib/autoproj/cli/inspection_tool.rb +73 -0
- data/lib/autoproj/cli/locate.rb +96 -0
- data/lib/autoproj/cli/log.rb +26 -0
- data/lib/autoproj/cli/main.rb +249 -0
- data/lib/autoproj/cli/main_test.rb +57 -0
- data/lib/autoproj/cli/osdeps.rb +30 -0
- data/lib/autoproj/cli/query.rb +43 -0
- data/lib/autoproj/cli/reconfigure.rb +19 -0
- data/lib/autoproj/cli/reset.rb +7 -32
- data/lib/autoproj/cli/show.rb +219 -0
- data/lib/autoproj/cli/snapshot.rb +1 -1
- data/lib/autoproj/cli/status.rb +149 -0
- data/lib/autoproj/cli/switch_config.rb +28 -0
- data/lib/autoproj/cli/tag.rb +9 -35
- data/lib/autoproj/cli/test.rb +34 -55
- data/lib/autoproj/cli/update.rb +158 -0
- data/lib/autoproj/cli/versions.rb +32 -69
- data/lib/autoproj/configuration.rb +95 -34
- data/lib/autoproj/default.osdeps +25 -35
- data/lib/autoproj/environment.rb +85 -63
- data/lib/autoproj/exceptions.rb +50 -0
- data/lib/autoproj/gitorious.rb +11 -9
- data/lib/autoproj/manifest.rb +199 -231
- data/lib/autoproj/metapackage.rb +0 -8
- data/lib/autoproj/ops/build.rb +1 -17
- data/lib/autoproj/ops/configuration.rb +92 -90
- data/lib/autoproj/ops/import.rb +222 -0
- data/lib/autoproj/ops/loader.rb +18 -8
- data/lib/autoproj/ops/main_config_switcher.rb +45 -73
- data/lib/autoproj/ops/snapshot.rb +5 -10
- data/lib/autoproj/ops/tools.rb +10 -44
- data/lib/autoproj/options.rb +35 -6
- data/lib/autoproj/osdeps.rb +97 -68
- data/lib/autoproj/package_selection.rb +39 -20
- data/lib/autoproj/package_set.rb +26 -24
- data/lib/autoproj/reporter.rb +91 -0
- data/lib/autoproj/system.rb +50 -149
- data/lib/autoproj/variable_expansion.rb +32 -6
- data/lib/autoproj/vcs_definition.rb +57 -17
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +550 -0
- data/test/ops/test_snapshot.rb +26 -0
- data/test/test_package.rb +30 -0
- data/test/test_vcs_definition.rb +46 -0
- metadata +55 -50
- data/bin/autolocate +0 -3
- data/bin/autoproj-bootstrap +0 -68
- data/bin/autoproj-cache +0 -18
- data/bin/autoproj-clean +0 -13
- data/bin/autoproj-commit +0 -10
- data/bin/autoproj-create-set +0 -118
- data/bin/autoproj-doc +0 -28
- data/bin/autoproj-envsh +0 -14
- data/bin/autoproj-list +0 -69
- data/bin/autoproj-locate +0 -85
- data/bin/autoproj-log +0 -5
- data/bin/autoproj-query +0 -82
- data/bin/autoproj-reset +0 -13
- data/bin/autoproj-show +0 -192
- data/bin/autoproj-snapshot +0 -27
- data/bin/autoproj-switch-config +0 -24
- data/bin/autoproj-tag +0 -13
- data/bin/autoproj-test +0 -31
- data/bin/autoproj-versions +0 -20
- data/bin/autoproj_stress_test +0 -40
- data/lib/autoproj/cmdline.rb +0 -1649
data/lib/autoproj/cli.rb
CHANGED
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'autoproj'
|
2
|
+
require 'autoproj/autobuild'
|
3
|
+
|
4
|
+
module Autoproj
|
5
|
+
module CLI
|
6
|
+
class Base
|
7
|
+
include Ops::Tools
|
8
|
+
|
9
|
+
attr_reader :ws
|
10
|
+
|
11
|
+
def initialize(ws = nil)
|
12
|
+
@ws = (ws || Workspace.from_environment)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Normalizes the arguments given by the user on the command line
|
16
|
+
#
|
17
|
+
# This converts relative paths to full paths, and removes mentions
|
18
|
+
# of the configuration directory (as it is handled separately in
|
19
|
+
# autoproj)
|
20
|
+
#
|
21
|
+
# @return [(Array<String>,Boolean)] the normalized arguments that
|
22
|
+
# could e.g. be passed to {#resolve_selection}, as well as whether
|
23
|
+
# the config directory was selected or not
|
24
|
+
def normalize_command_line_package_selection(selection)
|
25
|
+
selection = selection.map do |name|
|
26
|
+
if File.directory?(name)
|
27
|
+
File.expand_path(name) + "/"
|
28
|
+
else
|
29
|
+
name
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
config_selected = false
|
34
|
+
selection.delete_if do |name|
|
35
|
+
if name =~ /^#{Regexp.quote(ws.config_dir)}(?:#{File::SEPARATOR}|$)/ ||
|
36
|
+
name =~ /^#{Regexp.quote(ws.remotes_dir)}(?:#{File::SEPARATOR}|$)/
|
37
|
+
config_selected = true
|
38
|
+
elsif (ws.config_dir + File::SEPARATOR) =~ /^#{Regexp.quote(name)}/
|
39
|
+
config_selected = true
|
40
|
+
false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
return selection, config_selected
|
45
|
+
end
|
46
|
+
|
47
|
+
def resolve_user_selection(selected_packages, options = Hash.new)
|
48
|
+
if selected_packages.empty?
|
49
|
+
return ws.manifest.default_packages
|
50
|
+
end
|
51
|
+
selected_packages = selected_packages.to_set
|
52
|
+
|
53
|
+
selected_packages, nonresolved = ws.manifest.
|
54
|
+
expand_package_selection(selected_packages, options)
|
55
|
+
|
56
|
+
# Try to auto-add stuff if nonresolved
|
57
|
+
nonresolved.delete_if do |sel|
|
58
|
+
next if !File.directory?(sel)
|
59
|
+
while sel != '/'
|
60
|
+
handler, srcdir = Autoproj.package_handler_for(sel)
|
61
|
+
if handler
|
62
|
+
Autoproj.message " auto-adding #{srcdir} using the #{handler.gsub(/_package/, '')} package handler"
|
63
|
+
srcdir = File.expand_path(srcdir)
|
64
|
+
relative_to_root = Pathname.new(srcdir).relative_path_from(Pathname.new(ws.root_dir))
|
65
|
+
pkg = ws.in_package_set(ws.manifest.main_package_set, ws.manifest.file) do
|
66
|
+
send(handler, relative_to_root.to_s)
|
67
|
+
end
|
68
|
+
ws.setup_package_directories(pkg)
|
69
|
+
selected_packages.select(sel, pkg.name, weak: true)
|
70
|
+
break(true)
|
71
|
+
end
|
72
|
+
|
73
|
+
sel = File.dirname(sel)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
if Autoproj.verbose
|
78
|
+
Autoproj.message "will install #{selected_packages.packages.to_a.sort.join(", ")}"
|
79
|
+
end
|
80
|
+
return selected_packages, nonresolved
|
81
|
+
end
|
82
|
+
|
83
|
+
def resolve_selection(manifest, user_selection, options = Hash.new)
|
84
|
+
options = Kernel.validate_options options,
|
85
|
+
checkout_only: true,
|
86
|
+
only_local: false,
|
87
|
+
recursive: true,
|
88
|
+
ignore_non_imported_packages: false
|
89
|
+
|
90
|
+
resolved_selection, _ = resolve_user_selection(user_selection, filter: false)
|
91
|
+
if options[:ignore_non_imported_packages]
|
92
|
+
manifest.each_autobuild_package do |pkg|
|
93
|
+
if !File.directory?(pkg.srcdir)
|
94
|
+
manifest.ignore_package(pkg.name)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
resolved_selection.filter_excluded_and_ignored_packages(manifest)
|
99
|
+
|
100
|
+
ops = Ops::Import.new(ws)
|
101
|
+
source_packages, osdep_packages = ops.import_packages(
|
102
|
+
resolved_selection,
|
103
|
+
checkout_only: options[:checkout_only],
|
104
|
+
only_local: options[:only_local],
|
105
|
+
recursive: options[:recursive],
|
106
|
+
warn_about_ignored_packages: false)
|
107
|
+
|
108
|
+
return source_packages, osdep_packages, resolved_selection
|
109
|
+
end
|
110
|
+
|
111
|
+
def validate_user_selection(user_selection, resolved_selection)
|
112
|
+
not_matched = user_selection.find_all do |pkg_name|
|
113
|
+
!resolved_selection.has_match_for?(pkg_name)
|
114
|
+
end
|
115
|
+
if !not_matched.empty?
|
116
|
+
raise ConfigError.new, "autoproj: wrong package selection on command line, cannot find a match for #{not_matched.to_a.sort.join(", ")}"
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def validate_options(args, options)
|
121
|
+
self.class.validate_options(args, options)
|
122
|
+
end
|
123
|
+
|
124
|
+
def self.validate_options(args, options)
|
125
|
+
options, remaining = filter_options options,
|
126
|
+
silent: false,
|
127
|
+
verbose: false,
|
128
|
+
debug: false,
|
129
|
+
color: true,
|
130
|
+
progress: true
|
131
|
+
|
132
|
+
Autoproj.silent = options[:silent]
|
133
|
+
if options[:verbose]
|
134
|
+
Autoproj.verbose = true
|
135
|
+
Autobuild.verbose = true
|
136
|
+
Rake.application.options.trace = false
|
137
|
+
Autobuild.debug = false
|
138
|
+
end
|
139
|
+
|
140
|
+
if options[:debug]
|
141
|
+
Autoproj.verbose = true
|
142
|
+
Autobuild.verbose = true
|
143
|
+
Rake.application.options.trace = true
|
144
|
+
Autobuild.debug = true
|
145
|
+
end
|
146
|
+
|
147
|
+
Autobuild.color = options[:color]
|
148
|
+
|
149
|
+
Autobuild.progress_display_enabled = options[:progress]
|
150
|
+
return args, remaining
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
require 'autoproj'
|
2
|
+
require 'autoproj/cli/base'
|
3
|
+
require 'autoproj/ops/tools'
|
4
|
+
require 'autoproj/ops/main_config_switcher'
|
5
|
+
|
6
|
+
module Autoproj
|
7
|
+
module CLI
|
8
|
+
class Bootstrap
|
9
|
+
include Ops::Tools
|
10
|
+
|
11
|
+
attr_reader :root_dir
|
12
|
+
|
13
|
+
def initialize(root_dir = Dir.pwd)
|
14
|
+
if File.exists?(File.join(root_dir, 'autoproj', "manifest"))
|
15
|
+
raise ConfigError, "this installation is already bootstrapped. Remove the autoproj directory if it is not the case"
|
16
|
+
end
|
17
|
+
@root_dir = root_dir
|
18
|
+
end
|
19
|
+
|
20
|
+
def validate_options(args, options)
|
21
|
+
args, options = Base.validate_options(args, options)
|
22
|
+
if path = options[:reuse]
|
23
|
+
if path == 'reuse'
|
24
|
+
path = ENV['AUTOPROJ_CURRENT_ROOT']
|
25
|
+
end
|
26
|
+
|
27
|
+
path = File.expand_path(path)
|
28
|
+
if !File.directory?(path) || !File.directory?(File.join(path, 'autoproj'))
|
29
|
+
raise ArgumentError, "#{path} does not look like an autoproj installation"
|
30
|
+
end
|
31
|
+
options[:reuse] = [path]
|
32
|
+
end
|
33
|
+
return args, options
|
34
|
+
end
|
35
|
+
|
36
|
+
def restart_if_needed
|
37
|
+
# Check if the .autoprojrc changed the PATH and therefore which autoproj script
|
38
|
+
# should be executed ... and restart if it did
|
39
|
+
autoproj_path = Autobuild.find_in_path('autoproj')
|
40
|
+
if $0 != autoproj_path
|
41
|
+
puts "your .autoprojrc file changed PATH in a way that requires the restart of autoproj"
|
42
|
+
|
43
|
+
if ENV['AUTOPROJ_RESTARTING']
|
44
|
+
puts "infinite loop detected, will not restart this time"
|
45
|
+
else
|
46
|
+
require 'rbconfig'
|
47
|
+
ws.config.save
|
48
|
+
exec(ws.config.ruby_executable, autoproj_path, *ARGV)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def install_autoproj_gem_in_new_root(ws)
|
54
|
+
# Install the autoproj/autobuild gem explicitely in the new
|
55
|
+
# root.
|
56
|
+
original_env =
|
57
|
+
Hash['GEM_HOME' => Gem.paths.home,
|
58
|
+
'GEM_PATH' => Gem.paths.path]
|
59
|
+
|
60
|
+
begin
|
61
|
+
Gem.paths =
|
62
|
+
Hash['GEM_HOME' => File.join(root_dir, '.gems'),
|
63
|
+
'GEM_PATH' => []]
|
64
|
+
PackageManagers::GemManager.with_prerelease(ws.config.use_prerelease?) do
|
65
|
+
ws.osdeps.install(%w{autobuild autoproj})
|
66
|
+
end
|
67
|
+
ensure
|
68
|
+
Gem.paths = original_env
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def run(buildconf_info, options)
|
73
|
+
ws = Workspace.new(root_dir)
|
74
|
+
ws.setup
|
75
|
+
install_autoproj_gem_in_new_root(ws)
|
76
|
+
restart_if_needed
|
77
|
+
|
78
|
+
switcher = Ops::MainConfigSwitcher.new(ws)
|
79
|
+
begin
|
80
|
+
switcher.bootstrap(buildconf_info, options)
|
81
|
+
|
82
|
+
STDERR.puts <<-EOTEXT
|
83
|
+
|
84
|
+
|
85
|
+
#{Autoproj.color('autoproj bootstrap successfully finished', :green, :bold)}
|
86
|
+
|
87
|
+
#{Autoproj.color('To further use autoproj and the installed software', :bold)}, you
|
88
|
+
must add the following line at the bottom of your .bashrc:
|
89
|
+
source #{root_dir}/#{Autoproj::ENV_FILENAME}
|
90
|
+
|
91
|
+
WARNING: autoproj will not work until your restart all
|
92
|
+
your consoles, or run the following in them:
|
93
|
+
$ source #{root_dir}/#{Autoproj::ENV_FILENAME}
|
94
|
+
|
95
|
+
#{Autoproj.color('To import and build the packages', :bold)}, you can now run
|
96
|
+
aup
|
97
|
+
amake
|
98
|
+
|
99
|
+
The resulting software is installed in
|
100
|
+
#{root_dir}/install
|
101
|
+
|
102
|
+
EOTEXT
|
103
|
+
|
104
|
+
rescue RuntimeError
|
105
|
+
STDERR.puts <<-EOTEXT
|
106
|
+
#{Autoproj.color('autoproj bootstrap failed', :red, :bold)}
|
107
|
+
To retry, first source the #{Autoproj::ENV_FILENAME} script with
|
108
|
+
source #{root_dir}/#{Autoproj::ENV_FILENAME}
|
109
|
+
and then re-run autoproj bootstrap
|
110
|
+
autoproj bootstrap '#{ARGV.join("'")}'
|
111
|
+
EOTEXT
|
112
|
+
|
113
|
+
raise
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'autoproj/cli/update'
|
2
|
+
require 'autoproj/ops/build'
|
3
|
+
|
4
|
+
module Autoproj
|
5
|
+
module CLI
|
6
|
+
class Build < Update
|
7
|
+
def validate_options(selected_packages, options)
|
8
|
+
selected_packages, options = super
|
9
|
+
if options[:amake] && selected_packages.empty? && !options[:all]
|
10
|
+
selected_packages = ['.']
|
11
|
+
end
|
12
|
+
|
13
|
+
if !options.has_key?(:deps)
|
14
|
+
options[:deps] =
|
15
|
+
!(options[:rebuild] || options[:force])
|
16
|
+
end
|
17
|
+
return selected_packages, options
|
18
|
+
end
|
19
|
+
|
20
|
+
def run(selected_packages, options)
|
21
|
+
build_options, options = filter_options options,
|
22
|
+
force: false,
|
23
|
+
rebuild: false
|
24
|
+
|
25
|
+
Autobuild.ignore_errors = options[:keep_going]
|
26
|
+
|
27
|
+
command_line_selection, source_packages, osdep_packages =
|
28
|
+
super(selected_packages, options.merge(checkout_only: true))
|
29
|
+
|
30
|
+
ops = Ops::Build.new(ws.manifest)
|
31
|
+
if build_options[:rebuild] || build_options[:force]
|
32
|
+
packages_to_rebuild =
|
33
|
+
if options[:deps] || command_line_selection.empty?
|
34
|
+
source_packages
|
35
|
+
else command_line_selection
|
36
|
+
end
|
37
|
+
|
38
|
+
if command_line_selection.empty?
|
39
|
+
# If we don't have an explicit package selection, we want to
|
40
|
+
# make sure that the user really wants this
|
41
|
+
mode_name = if build_options[:rebuild] then 'rebuild'
|
42
|
+
else 'force-build'
|
43
|
+
end
|
44
|
+
opt = BuildOption.new("", "boolean", {:doc => "this is going to trigger a #{mode_name} of all packages. Is that really what you want ?"}, nil)
|
45
|
+
if !opt.ask(false)
|
46
|
+
raise Interrupt
|
47
|
+
end
|
48
|
+
if build_options[:rebuild]
|
49
|
+
if options[:osdeps]
|
50
|
+
ws.osdeps.reinstall
|
51
|
+
end
|
52
|
+
ops.rebuild_all
|
53
|
+
else
|
54
|
+
ops.force_build_all
|
55
|
+
end
|
56
|
+
elsif build_options[:rebuild]
|
57
|
+
ops.rebuild_packages(packages_to_rebuild, source_packages)
|
58
|
+
else
|
59
|
+
ops.force_build_packages(packages_to_rebuild, source_packages)
|
60
|
+
end
|
61
|
+
return
|
62
|
+
end
|
63
|
+
|
64
|
+
Autobuild.do_build = true
|
65
|
+
ops.build_packages(source_packages)
|
66
|
+
Autobuild.apply(source_packages, "autoproj-build", ['install'])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'autoproj/cli/inspection_tool'
|
2
|
+
require 'autoproj/ops/cache'
|
3
|
+
|
4
|
+
module Autoproj
|
5
|
+
module CLI
|
6
|
+
class Cache < InspectionTool
|
7
|
+
def validate_options(argv, options = Hash.new)
|
8
|
+
argv, options = super
|
9
|
+
|
10
|
+
if argv.empty?
|
11
|
+
raise ArgumentError, "expected one cache directory as argument"
|
12
|
+
elsif argv.size > 1
|
13
|
+
raise ArgumentError, "expected one cache directory as argument"
|
14
|
+
end
|
15
|
+
|
16
|
+
return File.expand_path(argv.first, ws.root_dir), options
|
17
|
+
end
|
18
|
+
|
19
|
+
def run(cache_dir, options = Hash.new)
|
20
|
+
options = Kernel.validate_options options,
|
21
|
+
keep_going: false
|
22
|
+
|
23
|
+
initialize_and_load
|
24
|
+
|
25
|
+
cache_op = Autoproj::Ops::Cache.new(cache_dir, ws.manifest)
|
26
|
+
cache_op.create_or_update(options[:keep_going])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'autoproj/cli/inspection_tool'
|
2
|
+
|
3
|
+
module Autoproj
|
4
|
+
module CLI
|
5
|
+
class Clean < InspectionTool
|
6
|
+
def validate_options(packages, options)
|
7
|
+
packages, options = super
|
8
|
+
if packages.empty? && !options[:all]
|
9
|
+
opt = BuildOption.new("", "boolean", {:doc => "this is going to clean all packages. Is that really what you want ?"}, nil)
|
10
|
+
if !opt.ask(false)
|
11
|
+
raise Interrupt
|
12
|
+
end
|
13
|
+
end
|
14
|
+
return packages, options
|
15
|
+
end
|
16
|
+
|
17
|
+
def run(selection, options = Hash.new)
|
18
|
+
initialize_and_load
|
19
|
+
packages, _ = normalize_command_line_package_selection(selection)
|
20
|
+
source_packages, * = resolve_selection(
|
21
|
+
ws.manifest,
|
22
|
+
selection,
|
23
|
+
recursive: false,
|
24
|
+
ignore_non_imported_packages: true)
|
25
|
+
if packages.empty?
|
26
|
+
raise ArgumentError, "no packages or OS packages match #{selection.join(" ")}"
|
27
|
+
end
|
28
|
+
|
29
|
+
source_packages.each do |pkg_name|
|
30
|
+
ws.manifest.find_autobuild_package(pkg_name).
|
31
|
+
prepare_for_rebuild
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'autoproj'
|
2
|
+
require 'autoproj/cli/versions'
|
3
|
+
require 'autoproj/ops/snapshot'
|
4
|
+
require 'autoproj/cli/base'
|
5
|
+
|
6
|
+
module Autoproj
|
7
|
+
module CLI
|
8
|
+
class Commit < InspectionTool
|
9
|
+
def run(*user_selection, options = Hash.new)
|
10
|
+
pkg = manifest.main_package_set.create_autobuild_package
|
11
|
+
importer = pkg.importer
|
12
|
+
if !importer || !importer.kind_of?(Autobuild::Git)
|
13
|
+
raise ConfigError, "cannot use autoproj tag if the main configuration is not managed by git"
|
14
|
+
end
|
15
|
+
|
16
|
+
versions_file = File.join(
|
17
|
+
ws.config_dir,
|
18
|
+
Workspace::OVERRIDES_DIR,
|
19
|
+
Versions::DEFAULT_VERSIONS_FILE_BASENAME)
|
20
|
+
|
21
|
+
initialize_and_load
|
22
|
+
|
23
|
+
versions = CLI::Versions.new(ws)
|
24
|
+
Autoproj.message "creating versions file, this may take a while"
|
25
|
+
versions.run(user_selection,
|
26
|
+
save: File.join(ws.config_dir, versions_file),
|
27
|
+
package_sets: options[:package_sets],
|
28
|
+
output_file: io.path,
|
29
|
+
replace: true,
|
30
|
+
keep_going: options[:keep_going])
|
31
|
+
|
32
|
+
importer.run_git(pkg, 'add', versions_file)
|
33
|
+
message = options[:message] ||
|
34
|
+
"autoproj created tag #{tag_name}"
|
35
|
+
|
36
|
+
importer.run_git(pkg, 'commit', '-m', message)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|