autoproj 1.13.7 → 2.0.0.b1
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/.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
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'autoproj'
|
2
|
+
require 'autoproj/cli/base'
|
3
|
+
require 'autoproj/ops/main_config_switcher'
|
4
|
+
require 'autoproj/ops/configuration'
|
5
|
+
|
6
|
+
module Autoproj
|
7
|
+
module CLI
|
8
|
+
class SwitchConfig < Base
|
9
|
+
def run(args, options = Hash.new)
|
10
|
+
if Dir.pwd.start_with?(ws.remotes_dir) || Dir.pwd.start_with?(ws.config_dir)
|
11
|
+
raise ConfigError, "you cannot run autoproj switch-config from autoproj's configuration directory or one of its subdirectories"
|
12
|
+
end
|
13
|
+
|
14
|
+
# We must switch to the root dir first, as it is required by the
|
15
|
+
# configuration switch code. This is acceptable as long as we
|
16
|
+
# quit just after the switch
|
17
|
+
switcher = Ops::MainConfigSwitcher.new(ws)
|
18
|
+
if switcher.switch_config(*args)
|
19
|
+
manifest = Manifest.load(File.join(ws.config_dir, 'manifest'))
|
20
|
+
update = Ops::Configuration.new(ws, ws.loader)
|
21
|
+
update.update_configuration
|
22
|
+
ws.config.save
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
data/lib/autoproj/cli/tag.rb
CHANGED
@@ -1,38 +1,12 @@
|
|
1
|
-
require 'autoproj
|
1
|
+
require 'autoproj'
|
2
2
|
require 'autoproj/cli/versions'
|
3
|
+
require 'autoproj/ops/snapshot'
|
4
|
+
require 'autoproj/cli/base'
|
5
|
+
|
3
6
|
module Autoproj
|
4
7
|
module CLI
|
5
|
-
class Tag
|
6
|
-
|
7
|
-
|
8
|
-
attr_reader :manifest
|
9
|
-
|
10
|
-
def initialize(manifest)
|
11
|
-
@manifest = manifest
|
12
|
-
end
|
13
|
-
|
14
|
-
def parse_options(args)
|
15
|
-
options = Hash[package_sets: true, keep_going: false]
|
16
|
-
parser = OptionParser.new do |opt|
|
17
|
-
opt.on '--[no-]package-sets', 'commit the package set state as well (enabled by default)' do |flag|
|
18
|
-
options[:package_sets] = flag
|
19
|
-
end
|
20
|
-
opt.on '-k', '--keep-going', "ignore packages that can't be snapshotted (the default is to terminate with an error)" do
|
21
|
-
options[:keep_going] = true
|
22
|
-
end
|
23
|
-
opt.on '-m MESSAGE', '--message=MESSAGE', String, "the message to use for the new commit (defaults to mentioning the tag creation)" do |message|
|
24
|
-
options[:message] = message
|
25
|
-
end
|
26
|
-
end
|
27
|
-
common_options(parser)
|
28
|
-
remaining = parser.parse(args)
|
29
|
-
if remaining.size > 1
|
30
|
-
raise InvalidArguments, "expected only the tag name as argument"
|
31
|
-
end
|
32
|
-
return remaining.first, options
|
33
|
-
end
|
34
|
-
|
35
|
-
def run(tag_name, options)
|
8
|
+
class Tag < Base
|
9
|
+
def run(tag_name, *user_selection, options = Hash.new)
|
36
10
|
pkg = manifest.main_package_set.create_autobuild_package
|
37
11
|
importer = pkg.importer
|
38
12
|
if !importer || !importer.kind_of?(Autobuild::Git)
|
@@ -40,7 +14,7 @@ module Autoproj
|
|
40
14
|
end
|
41
15
|
|
42
16
|
versions_file = File.join(
|
43
|
-
OVERRIDES_DIR,
|
17
|
+
Workspace::OVERRIDES_DIR,
|
44
18
|
Versions::DEFAULT_VERSIONS_FILE_BASENAME)
|
45
19
|
|
46
20
|
if tag_name.nil?
|
@@ -65,9 +39,9 @@ module Autoproj
|
|
65
39
|
message = options[:message] ||
|
66
40
|
"autoproj created tag #{tag_name}"
|
67
41
|
commit_id = Ops::Snapshot.create_commit(pkg, versions_file, message) do |io|
|
68
|
-
versions = CLI::Versions.new(
|
42
|
+
versions = CLI::Versions.new(ws)
|
69
43
|
Autoproj.message "creating versions file, this may take a while"
|
70
|
-
versions.run(
|
44
|
+
versions.run(user_selection,
|
71
45
|
package_sets: options[:package_sets],
|
72
46
|
output_file: io.path,
|
73
47
|
replace: true,
|
data/lib/autoproj/cli/test.rb
CHANGED
@@ -1,67 +1,48 @@
|
|
1
|
-
require 'autoproj/
|
1
|
+
require 'autoproj/cli/inspection_tool'
|
2
2
|
|
3
3
|
module Autoproj
|
4
4
|
module CLI
|
5
|
-
class Test
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
modified_config = false
|
18
|
-
mode = nil
|
19
|
-
options = Hash.new
|
20
|
-
option_parser = OptionParser.new do |opt|
|
21
|
-
opt.on '--enable[=PACKAGE,PACKAGE]', Array, 'enable tests for all packages or for specific packages (does not run the tests)' do |packages|
|
22
|
-
if !packages
|
23
|
-
Autoproj.config.utility_enable_all('test')
|
24
|
-
else
|
25
|
-
Autoproj.config.utility_enable_for('test', *packages)
|
26
|
-
end
|
27
|
-
modified_config = true
|
28
|
-
end
|
29
|
-
opt.on '--disable[=PACKAGE,PACKAGE]', Array, 'disable tests for all packages or for specific packages (does not run the tests)' do |packages|
|
30
|
-
if !packages
|
31
|
-
Autoproj.config.utility_disable_all('test')
|
32
|
-
else
|
33
|
-
Autoproj.config.utility_disable_for('test', *packages)
|
34
|
-
end
|
35
|
-
modified_config = true
|
36
|
-
end
|
37
|
-
opt.on '--list', 'list the test availability and enabled/disabled state information' do
|
38
|
-
mode = 'list'
|
39
|
-
end
|
40
|
-
opt.on '--[no-]recursion', '(do not) run or list the tests of the dependencies of the packages given on the command line (the default is false)' do |flag|
|
41
|
-
options[:recursive] = flag
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
user_selection = option_parser.parse(ARGV)
|
46
|
-
if !mode && !(modified_config && user_selection.empty?)
|
47
|
-
mode = 'run'
|
5
|
+
class Test < InspectionTool
|
6
|
+
def enable(user_selection, options = Hash.new)
|
7
|
+
if user_selection.empty?
|
8
|
+
ws.load_config
|
9
|
+
ws.config.utility_enable_all('test')
|
10
|
+
else
|
11
|
+
initialize_and_load
|
12
|
+
selection, _ = finalize_setup(
|
13
|
+
user_selection,
|
14
|
+
recursive: options[:deps],
|
15
|
+
ignore_non_imported_packages: true)
|
16
|
+
ws.config.utility_enable('test', *selection)
|
48
17
|
end
|
18
|
+
ws.config.save
|
19
|
+
end
|
49
20
|
|
50
|
-
|
51
|
-
|
21
|
+
def disable(user_selection, options = Hash.new)
|
22
|
+
if user_selection.empty?
|
23
|
+
ws.load_config
|
24
|
+
ws.config.utility_disable_all('test')
|
25
|
+
else
|
26
|
+
initialize_and_load
|
27
|
+
selection, _ = finalize_setup(
|
28
|
+
user_selection,
|
29
|
+
recursive: options[:deps],
|
30
|
+
ignore_non_imported_packages: true)
|
31
|
+
ws.config.utility_disable('test', *selection)
|
52
32
|
end
|
53
|
-
|
33
|
+
ws.config.save
|
54
34
|
end
|
55
35
|
|
56
36
|
def list(user_selection, options = Hash.new)
|
57
|
-
|
37
|
+
initialize_and_load
|
38
|
+
resolved_selection, _ = finalize_setup(
|
58
39
|
user_selection,
|
59
|
-
recursive: options[:
|
40
|
+
recursive: options[:dep],
|
60
41
|
ignore_non_imported_packages: true)
|
61
42
|
|
62
43
|
lines = Array.new
|
63
44
|
resolved_selection.each do |pkg_name|
|
64
|
-
pkg = manifest.find_package(pkg_name).autobuild
|
45
|
+
pkg = ws.manifest.find_package(pkg_name).autobuild
|
65
46
|
lines << [pkg.name, pkg.test_utility.enabled?, pkg.test_utility.available?]
|
66
47
|
end
|
67
48
|
lines = lines.sort_by { |name, _| name }
|
@@ -74,11 +55,9 @@ module Autoproj
|
|
74
55
|
end
|
75
56
|
|
76
57
|
def run(user_selection, options = Hash.new)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
ignore_non_imported_packages: true)
|
81
|
-
# This calls #prepare, which is required to run build_packages
|
58
|
+
initialize_and_load
|
59
|
+
packages, _ = finalize_setup(user_selection)
|
60
|
+
|
82
61
|
packages.each do |pkg|
|
83
62
|
Autobuild::Package[pkg].disable_phases('import', 'prepare', 'install')
|
84
63
|
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
require 'autoproj/cli'
|
2
|
+
require 'autoproj/cli/base'
|
3
|
+
require 'autoproj/ops/import'
|
4
|
+
|
5
|
+
module Autoproj
|
6
|
+
module CLI
|
7
|
+
class Update < Base
|
8
|
+
def validate_options(packages, options)
|
9
|
+
packages, options = super
|
10
|
+
|
11
|
+
if !options[:osdeps]
|
12
|
+
options[:osdeps_mode] = Array.new
|
13
|
+
end
|
14
|
+
|
15
|
+
if from = options[:from]
|
16
|
+
options[:from] = Autoproj::InstallationManifest.from_root(options[:from])
|
17
|
+
end
|
18
|
+
ws.osdeps.filter_uptodate_packages = options[:osdeps_filter_uptodate]
|
19
|
+
|
20
|
+
if options[:aup] && !options[:all] && packages.empty?
|
21
|
+
packages = ['.']
|
22
|
+
end
|
23
|
+
|
24
|
+
if options[:autoproj].nil?
|
25
|
+
options[:autoproj] = packages.empty?
|
26
|
+
end
|
27
|
+
|
28
|
+
return packages, options
|
29
|
+
end
|
30
|
+
|
31
|
+
def run(selected_packages, options)
|
32
|
+
selected_packages, config_selected =
|
33
|
+
normalize_command_line_package_selection(selected_packages)
|
34
|
+
|
35
|
+
if options[:config].nil?
|
36
|
+
options[:config] = selected_packages.empty? || config_selected
|
37
|
+
end
|
38
|
+
|
39
|
+
ws.setup
|
40
|
+
ws.install_ruby_shims
|
41
|
+
|
42
|
+
# Do that AFTER we have properly setup ws.osdeps as to avoid
|
43
|
+
# unnecessarily redetecting the operating system
|
44
|
+
if options[:osdeps]
|
45
|
+
ws.config.set(
|
46
|
+
'operating_system',
|
47
|
+
Autoproj::OSDependencies.operating_system(:force => true),
|
48
|
+
true)
|
49
|
+
end
|
50
|
+
|
51
|
+
if options[:autoproj]
|
52
|
+
ws.update_autoproj
|
53
|
+
end
|
54
|
+
|
55
|
+
ws.load_package_sets(
|
56
|
+
only_local: options[:local],
|
57
|
+
checkout_only: !options[:config] || options[:checkout_only],
|
58
|
+
ignore_errors: options[:keep_going])
|
59
|
+
if selected_packages.empty? && config_selected
|
60
|
+
return
|
61
|
+
end
|
62
|
+
|
63
|
+
ws.setup_all_package_directories
|
64
|
+
# Call resolve_user_selection once to auto-add packages
|
65
|
+
resolve_user_selection(selected_packages)
|
66
|
+
# Now we can finalize and re-resolve the selection since the
|
67
|
+
# overrides.rb files might have changed it
|
68
|
+
ws.finalize_package_setup
|
69
|
+
# Finally, filter out exclusions
|
70
|
+
resolved_selected_packages, _ =
|
71
|
+
resolve_user_selection(selected_packages)
|
72
|
+
validate_user_selection(selected_packages, resolved_selected_packages)
|
73
|
+
|
74
|
+
if !selected_packages.empty?
|
75
|
+
command_line_selection = resolved_selected_packages.dup
|
76
|
+
else
|
77
|
+
command_line_selection = Array.new
|
78
|
+
end
|
79
|
+
selected_packages = resolved_selected_packages
|
80
|
+
|
81
|
+
if other_root = options[:from]
|
82
|
+
setup_update_from(other_root)
|
83
|
+
end
|
84
|
+
|
85
|
+
osdeps_options = Hash[install_only: options[:checkout_only]]
|
86
|
+
if options[:osdeps_mode]
|
87
|
+
osdeps_options[:osdeps_mode] = options[:osdeps_mode]
|
88
|
+
end
|
89
|
+
|
90
|
+
if options[:osdeps]
|
91
|
+
# Install the osdeps for the version control
|
92
|
+
vcs_to_install = Set.new
|
93
|
+
selected_packages.each_source_package_name do |pkg_name|
|
94
|
+
if pkg = ws.manifest.find_package(pkg_name)
|
95
|
+
if pkg.vcs
|
96
|
+
vcs_to_install << pkg.vcs.type
|
97
|
+
end
|
98
|
+
else
|
99
|
+
raise "cannot find package #{pkg_name}"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
ws.osdeps.install(vcs_to_install, osdeps_options)
|
103
|
+
end
|
104
|
+
|
105
|
+
ops = Autoproj::Ops::Import.new(ws)
|
106
|
+
source_packages, osdep_packages =
|
107
|
+
ops.import_packages(selected_packages,
|
108
|
+
checkout_only: options[:checkout_only],
|
109
|
+
only_local: options[:local],
|
110
|
+
reset: options[:reset],
|
111
|
+
recursive: options[:deps],
|
112
|
+
ignore_errors: options[:keep_going])
|
113
|
+
|
114
|
+
ws.finalize_setup
|
115
|
+
load_all_available_package_manifests
|
116
|
+
ws.export_installation_manifest
|
117
|
+
|
118
|
+
if options[:osdeps] && !osdep_packages.empty?
|
119
|
+
ws.osdeps.install(osdep_packages, osdeps_options)
|
120
|
+
end
|
121
|
+
|
122
|
+
ws.env.export_env_sh
|
123
|
+
Autoproj.message "autoproj: updated #{ws.root_dir}/#{Autoproj::ENV_FILENAME}", :green
|
124
|
+
|
125
|
+
return command_line_selection, source_packages, osdep_packages
|
126
|
+
end
|
127
|
+
|
128
|
+
def load_all_available_package_manifests
|
129
|
+
# Load the manifest for packages that are already present on the
|
130
|
+
# file system
|
131
|
+
ws.manifest.packages.each_value do |pkg|
|
132
|
+
if File.directory?(pkg.autobuild.srcdir)
|
133
|
+
begin
|
134
|
+
ws.manifest.load_package_manifest(pkg.autobuild.name)
|
135
|
+
rescue Interrupt
|
136
|
+
raise
|
137
|
+
rescue Exception => e
|
138
|
+
Autoproj.warn "cannot load package manifest for #{pkg.autobuild.name}: #{e.message}"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def setup_update_from(other_root)
|
145
|
+
manifest.each_autobuild_package do |pkg|
|
146
|
+
if pkg.importer.respond_to?(:pick_from_autoproj_root)
|
147
|
+
if !pkg.importer.pick_from_autoproj_root(pkg, other_root)
|
148
|
+
pkg.update = false
|
149
|
+
end
|
150
|
+
else
|
151
|
+
pkg.update = false
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
@@ -1,91 +1,54 @@
|
|
1
1
|
require 'autoproj'
|
2
|
-
require 'autoproj/
|
2
|
+
require 'autoproj/cli/inspection_tool'
|
3
3
|
require 'autoproj/ops/tools'
|
4
4
|
require 'autoproj/ops/snapshot'
|
5
5
|
|
6
6
|
module Autoproj
|
7
7
|
module CLI
|
8
|
-
class Versions
|
9
|
-
include Ops::Tools
|
10
|
-
|
8
|
+
class Versions < InspectionTool
|
11
9
|
DEFAULT_VERSIONS_FILE_BASENAME = Ops::Snapshot::DEFAULT_VERSIONS_FILE_BASENAME
|
12
10
|
|
13
11
|
def default_versions_file
|
14
12
|
File.join( Autoproj.overrides_dir, DEFAULT_VERSIONS_FILE_BASENAME )
|
15
13
|
end
|
16
14
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
packages = CmdLine.import_packages(resolved_selection)
|
29
|
-
|
30
|
-
# Remove non-existing packages
|
31
|
-
packages.each do |pkg|
|
32
|
-
if !File.directory?(manifest.package(pkg).autobuild.srcdir)
|
33
|
-
raise ConfigError, "cannot commit #{pkg} as it is not checked out"
|
34
|
-
end
|
15
|
+
def validate_options(packages, options = Hash.new)
|
16
|
+
packages, options = super
|
17
|
+
if options.has_key?(:save)
|
18
|
+
options[:save] = case options[:save]
|
19
|
+
when '.'
|
20
|
+
nil
|
21
|
+
when true
|
22
|
+
default_versions_file
|
23
|
+
else
|
24
|
+
options[:save].to_str
|
25
|
+
end
|
35
26
|
end
|
36
|
-
packages
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
def parse_options(args)
|
41
|
-
options = Hash.new
|
42
|
-
parser = OptionParser.new do |opt|
|
43
|
-
opt.on '--[no-]package-sets', 'commit the package set state as well (default if no packages are selected)' do |flag|
|
44
|
-
options[:package_sets] = flag
|
45
|
-
end
|
46
|
-
opt.on '--replace', String, 'if the file given to --save exists, replace it instead of updating it' do
|
47
|
-
options[:replace] = true
|
48
|
-
end
|
49
|
-
opt.on '-k', '--keep-going', "ignore packages that can't be snapshotted (the default is to terminate with an error)" do
|
50
|
-
options[:keep_going] = true
|
51
|
-
end
|
52
|
-
opt.on '--save[=FILE]', String, "the file into which the versions should be saved (if no file is given, defaults to #{default_versions_file})" do |file|
|
53
|
-
options[:output_file] =
|
54
|
-
if file == '-'
|
55
|
-
nil
|
56
|
-
elsif !file
|
57
|
-
default_versions_file
|
58
|
-
else
|
59
|
-
file
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
common_options(parser)
|
64
|
-
remaining = parser.parse(args)
|
65
|
-
return remaining, options
|
27
|
+
return packages, options
|
66
28
|
end
|
67
29
|
|
68
30
|
def run(user_selection, options)
|
69
|
-
|
70
|
-
|
71
|
-
|
31
|
+
initialize_and_load
|
32
|
+
packages, *, config_selected =
|
33
|
+
finalize_setup(user_selection,
|
34
|
+
ignore_non_imported_packages: true)
|
35
|
+
|
36
|
+
if (config_selected || user_selection.empty?) && (options[:package_sets] != false)
|
37
|
+
options[:package_sets] = true
|
72
38
|
end
|
73
39
|
|
74
|
-
|
75
|
-
packages = resolve_selection user_selection
|
76
|
-
ops = Ops::Snapshot.new(manifest, keep_going: options[:keep_going])
|
40
|
+
ops = Ops::Snapshot.new(ws.manifest, keep_going: options[:keep_going])
|
77
41
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
end
|
42
|
+
versions = Array.new
|
43
|
+
if options[:package_sets]
|
44
|
+
versions += ops.snapshot_package_sets
|
45
|
+
end
|
46
|
+
versions += ops.snapshot_packages(packages)
|
47
|
+
if output_file = options[:save]
|
48
|
+
ops.save_versions(versions, output_file, replace: options[:replace])
|
49
|
+
else
|
50
|
+
versions = ops.sort_versions(versions)
|
51
|
+
puts YAML.dump(versions)
|
89
52
|
end
|
90
53
|
end
|
91
54
|
end
|