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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1e302cab6677a8cb13970ecc83bd4df3b88be03
|
4
|
+
data.tar.gz: 5e4a7dfe45bbeab8e593c941990d30dd0c78d913
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2238a795517a8bfa3261f8e8a2a14a1e1be30d90fbb56469cb6634520a5aed280bb1746c511fe1db7443725142d9f8a1a39a67422432977787dae61b6f02446
|
7
|
+
data.tar.gz: e02d859e9a811a1bd09bb1ac30e69d0c5ee3425ae28e1f704e938217b53c01bd4042d927ea54b9d24e9a3af0690c89c3d24cbc25cff5df7bff938c63bbf683d7
|
data/.gemtest
ADDED
File without changes
|
data/Manifest.txt
CHANGED
@@ -5,43 +5,43 @@ Rakefile
|
|
5
5
|
bin/alocate
|
6
6
|
bin/amake
|
7
7
|
bin/aup
|
8
|
-
bin/autolocate
|
9
8
|
bin/autoproj
|
10
|
-
bin/autoproj-bootstrap
|
11
|
-
bin/autoproj-cache
|
12
|
-
bin/autoproj-clean
|
13
|
-
bin/autoproj-commit
|
14
|
-
bin/autoproj-create-set
|
15
|
-
bin/autoproj-doc
|
16
|
-
bin/autoproj-envsh
|
17
|
-
bin/autoproj-list
|
18
|
-
bin/autoproj-locate
|
19
|
-
bin/autoproj-log
|
20
|
-
bin/autoproj-query
|
21
|
-
bin/autoproj-reset
|
22
|
-
bin/autoproj-show
|
23
|
-
bin/autoproj-snapshot
|
24
|
-
bin/autoproj-switch-config
|
25
|
-
bin/autoproj-tag
|
26
|
-
bin/autoproj-test
|
27
|
-
bin/autoproj-versions
|
28
9
|
bin/autoproj_bootstrap
|
29
10
|
bin/autoproj_bootstrap.in
|
30
|
-
bin/autoproj_stress_test
|
31
11
|
lib/autoproj.rb
|
32
12
|
lib/autoproj/autobuild.rb
|
33
13
|
lib/autoproj/base.rb
|
34
14
|
lib/autoproj/build_option.rb
|
35
15
|
lib/autoproj/cli.rb
|
16
|
+
lib/autoproj/cli/base.rb
|
17
|
+
lib/autoproj/cli/bootstrap.rb
|
18
|
+
lib/autoproj/cli/build.rb
|
19
|
+
lib/autoproj/cli/cache.rb
|
20
|
+
lib/autoproj/cli/clean.rb
|
21
|
+
lib/autoproj/cli/commit.rb
|
22
|
+
lib/autoproj/cli/doc.rb
|
23
|
+
lib/autoproj/cli/envsh.rb
|
24
|
+
lib/autoproj/cli/inspection_tool.rb
|
25
|
+
lib/autoproj/cli/locate.rb
|
26
|
+
lib/autoproj/cli/log.rb
|
27
|
+
lib/autoproj/cli/main.rb
|
28
|
+
lib/autoproj/cli/main_test.rb
|
29
|
+
lib/autoproj/cli/osdeps.rb
|
30
|
+
lib/autoproj/cli/query.rb
|
31
|
+
lib/autoproj/cli/reconfigure.rb
|
36
32
|
lib/autoproj/cli/reset.rb
|
33
|
+
lib/autoproj/cli/show.rb
|
37
34
|
lib/autoproj/cli/snapshot.rb
|
35
|
+
lib/autoproj/cli/status.rb
|
36
|
+
lib/autoproj/cli/switch_config.rb
|
38
37
|
lib/autoproj/cli/tag.rb
|
39
38
|
lib/autoproj/cli/test.rb
|
39
|
+
lib/autoproj/cli/update.rb
|
40
40
|
lib/autoproj/cli/versions.rb
|
41
|
-
lib/autoproj/cmdline.rb
|
42
41
|
lib/autoproj/configuration.rb
|
43
42
|
lib/autoproj/default.osdeps
|
44
43
|
lib/autoproj/environment.rb
|
44
|
+
lib/autoproj/exceptions.rb
|
45
45
|
lib/autoproj/gitorious.rb
|
46
46
|
lib/autoproj/installation_manifest.rb
|
47
47
|
lib/autoproj/manifest.rb
|
@@ -49,6 +49,7 @@ lib/autoproj/metapackage.rb
|
|
49
49
|
lib/autoproj/ops/build.rb
|
50
50
|
lib/autoproj/ops/cache.rb
|
51
51
|
lib/autoproj/ops/configuration.rb
|
52
|
+
lib/autoproj/ops/import.rb
|
52
53
|
lib/autoproj/ops/loader.rb
|
53
54
|
lib/autoproj/ops/main_config_switcher.rb
|
54
55
|
lib/autoproj/ops/snapshot.rb
|
@@ -60,6 +61,7 @@ lib/autoproj/package_manifest.rb
|
|
60
61
|
lib/autoproj/package_selection.rb
|
61
62
|
lib/autoproj/package_set.rb
|
62
63
|
lib/autoproj/query.rb
|
64
|
+
lib/autoproj/reporter.rb
|
63
65
|
lib/autoproj/system.rb
|
64
66
|
lib/autoproj/templates/create-set/packages.autobuild
|
65
67
|
lib/autoproj/templates/create-set/source.yml
|
@@ -67,6 +69,7 @@ lib/autoproj/test.rb
|
|
67
69
|
lib/autoproj/variable_expansion.rb
|
68
70
|
lib/autoproj/vcs_definition.rb
|
69
71
|
lib/autoproj/version.rb
|
72
|
+
lib/autoproj/workspace.rb
|
70
73
|
samples/autoproj/README.txt
|
71
74
|
samples/autoproj/init.rb
|
72
75
|
samples/autoproj/manifest
|
@@ -88,6 +91,7 @@ test/data/test_manifest/autoproj/local_set/local.autobuild
|
|
88
91
|
test/data/test_manifest/autoproj/local_set/source.yml
|
89
92
|
test/data/test_manifest/autoproj/manifest
|
90
93
|
test/ops/test_configuration.rb
|
94
|
+
test/ops/test_snapshot.rb
|
91
95
|
test/package_managers/apt-dpkg-status
|
92
96
|
test/package_managers/apt-dpkg-status.installed-last
|
93
97
|
test/package_managers/apt-dpkg-status.noninstalled-last
|
@@ -96,4 +100,6 @@ test/package_managers/test_gem.rb
|
|
96
100
|
test/package_managers/test_pip.rb
|
97
101
|
test/test_manifest.rb
|
98
102
|
test/test_os_dependencies.rb
|
103
|
+
test/test_package.rb
|
99
104
|
test/test_package_manifest.rb
|
105
|
+
test/test_vcs_definition.rb
|
data/Rakefile
CHANGED
@@ -18,9 +18,9 @@ Utilrb::Rake.hoe do
|
|
18
18
|
license 'BSD'
|
19
19
|
|
20
20
|
extra_deps <<
|
21
|
-
['autobuild',
|
22
|
-
['utilrb', '~> 2.0.0'] <<
|
23
|
-
['highline', '>= 1.
|
21
|
+
['autobuild', '~> 1.9', '>= 1.9.0'] <<
|
22
|
+
['utilrb', '~> 2.0', '>= 2.0.0'] <<
|
23
|
+
['highline', '~> 1.7', '>= 1.7.0']
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -32,7 +32,6 @@ namespace 'dist' do
|
|
32
32
|
build_option_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'build_option.rb'))
|
33
33
|
config_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'configuration.rb'))
|
34
34
|
osdeps_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'osdeps.rb'))
|
35
|
-
options_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'options.rb'))
|
36
35
|
system_code = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'system.rb'))
|
37
36
|
osdeps_defaults = File.read(File.join(Dir.pwd, 'lib', 'autoproj', 'default.osdeps'))
|
38
37
|
require 'autobuild'
|
@@ -51,7 +50,7 @@ namespace 'dist' do
|
|
51
50
|
osdeps_defaults = YAML.dump(osdeps)
|
52
51
|
# Since we are using gsub to replace the content in the bootstrap file,
|
53
52
|
# we have to quote all \
|
54
|
-
[osdeps_code,
|
53
|
+
[osdeps_code, system_code, osdeps_defaults, tools_code].each do |text|
|
55
54
|
text.gsub! /\\/, '\\\\\\\\'
|
56
55
|
end
|
57
56
|
|
@@ -59,7 +58,6 @@ namespace 'dist' do
|
|
59
58
|
gsub('BUILD_OPTION_CODE', build_option_code).
|
60
59
|
gsub('CONFIG_CODE', config_code).
|
61
60
|
gsub('OSDEPS_CODE', osdeps_code).
|
62
|
-
gsub('OPTIONS_CODE', options_code).
|
63
61
|
gsub('SYSTEM_CODE', system_code).
|
64
62
|
gsub('OSDEPS_DEFAULTS', osdeps_defaults).
|
65
63
|
gsub('TOOLS_CODE', tools_code)
|
data/bin/alocate
CHANGED
data/bin/amake
CHANGED
@@ -1,56 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
4
|
-
|
5
|
-
|
6
|
-
mode = "build"
|
7
|
-
|
8
|
-
parser = OptionParser.new do |opt|
|
9
|
-
opt.banner = "amake [options] [dir_or_package]
|
10
|
-
Runs autoproj build for the given directory or package name.
|
11
|
-
Selects the current directory if none is given
|
12
|
-
|
13
|
-
Accepts all options from autoproj build plus the following options:
|
14
|
-
|
15
|
-
"
|
16
|
-
opt.on('--all', 'runs autoproj build without arguments (does not add the current directory)') do
|
17
|
-
build_all = true
|
18
|
-
end
|
19
|
-
opt.on('--force', 'runs autoproj force-build instead of autoproj build') do
|
20
|
-
mode = "force-build"
|
21
|
-
end
|
22
|
-
opt.on('--rebuild', 'runs autoproj force-build instead of autoproj build') do
|
23
|
-
mode = "rebuild"
|
24
|
-
end
|
25
|
-
opt.on('--help', 'shows this help message') do
|
26
|
-
puts parser
|
27
|
-
exit(0)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# Accept options that are invalid in +parser+, to pass them on to autoproj
|
32
|
-
# itself
|
33
|
-
options = ARGV.dup
|
34
|
-
remaining = []
|
35
|
-
while !options.empty?
|
36
|
-
begin
|
37
|
-
head = options.shift
|
38
|
-
remaining.concat(parser.parse([head]))
|
39
|
-
rescue OptionParser::InvalidOption
|
40
|
-
remaining << head
|
41
|
-
retry
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# If --all is not given *and* there is no non-option argument (i.e. no directory
|
46
|
-
# / package name), add the current directory to the command line
|
47
|
-
if remaining.grep(/^-/).size == remaining.size && !build_all
|
48
|
-
remaining.push '.'
|
49
|
-
end
|
50
|
-
|
51
|
-
remaining.unshift mode
|
52
|
-
ORIGINAL_ARGV = ARGV.dup # This is used in case autoproj needs to update itself
|
53
|
-
ARGV.clear
|
54
|
-
ARGV.concat(remaining)
|
55
|
-
load File.expand_path('autoproj', File.dirname(__FILE__))
|
3
|
+
require 'autoproj/cli/main'
|
4
|
+
Autoproj::CLI.basic_setup
|
5
|
+
Autoproj::CLI::Main.start(['build', '--amake', *ARGV])
|
56
6
|
|
data/bin/aup
CHANGED
@@ -1,52 +1,5 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
-
require 'optparse'
|
3
|
-
require 'autoproj'
|
4
|
-
|
5
|
-
build_all = (Dir.pwd == Autoproj.root_dir)
|
6
|
-
parser = OptionParser.new do |opt|
|
7
|
-
opt.banner = "aup [options] [dir_or_package]
|
8
|
-
Runs autoproj update for the given directory or package name.
|
9
|
-
Selects the current directory if none is given. Override by
|
10
|
-
passing the --all option.
|
11
|
-
|
12
|
-
Accepts all options from autoproj update plus the following options:
|
13
|
-
|
14
|
-
"
|
15
|
-
opt.on('--all', 'runs autoproj build without arguments (does not add the current directory)') do
|
16
|
-
build_all = true
|
17
|
-
end
|
18
|
-
opt.on('--help', 'shows this help message') do
|
19
|
-
puts parser
|
20
|
-
exit(0)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
# Accept options that are invalid in +parser+, to pass them on to autoproj
|
25
|
-
# itself
|
26
|
-
options = ARGV.dup
|
27
|
-
remaining = []
|
28
|
-
while !options.empty?
|
29
|
-
begin
|
30
|
-
head = options.shift
|
31
|
-
remaining.concat(parser.parse([head]))
|
32
|
-
rescue OptionParser::InvalidOption
|
33
|
-
remaining << head
|
34
|
-
retry
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
# If --all is not given *and* there is no non-option argument (i.e. no directory
|
40
|
-
# / package name), add the current directory to the command line
|
41
|
-
#
|
42
|
-
# BUT make running 'aup' in the root directory the equivalent of aup --all
|
43
|
-
if remaining.grep(/^-/).size == remaining.size && !build_all
|
44
|
-
remaining.push '.'
|
45
|
-
end
|
46
|
-
remaining.unshift 'update'
|
47
|
-
|
48
|
-
ORIGINAL_ARGV = ARGV.dup # This is used in case autoproj needs to update itself
|
49
|
-
ARGV.clear
|
50
|
-
ARGV.concat(remaining)
|
51
|
-
load File.expand_path('autoproj', File.dirname(__FILE__))
|
52
2
|
|
3
|
+
require 'autoproj/cli/main'
|
4
|
+
Autoproj::CLI.basic_setup
|
5
|
+
Autoproj::CLI::Main.start(['update', '--aup', *ARGV])
|
data/bin/autoproj
CHANGED
@@ -1,269 +1,8 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
|
3
|
-
if !defined?(ORIGINAL_ARGV)
|
4
|
-
ORIGINAL_ARGV = ARGV.dup
|
5
|
-
end
|
6
|
-
|
7
|
-
if RUBY_VERSION < "1.9.2"
|
8
|
-
STDERR.puts "autoproj requires Ruby >= 1.9.2"
|
9
|
-
exit 1
|
10
|
-
end
|
11
|
-
|
12
3
|
require 'autoproj'
|
13
4
|
require 'autoproj/autobuild'
|
14
|
-
require '
|
15
|
-
|
16
|
-
|
17
|
-
include Autoproj
|
18
|
-
|
19
|
-
InputError = Autoproj::InputError
|
20
|
-
|
21
|
-
def color(*args)
|
22
|
-
Autoproj.color(*args)
|
23
|
-
end
|
24
|
-
|
25
|
-
Encoding.default_internal = Encoding::UTF_8
|
26
|
-
Encoding.default_external = Encoding::UTF_8
|
27
|
-
Autoproj::OSDependencies.autodetect_ruby
|
28
|
-
|
29
|
-
# Check the first element of ARGV. If a tool called autoproj-VALUE exists, just
|
30
|
-
# pass the hand to it
|
31
|
-
prefix = File.expand_path(__FILE__)
|
32
|
-
if File.file?("#{prefix}-#{ARGV.first}")
|
33
|
-
binary = "#{prefix}-#{ARGV.shift}"
|
34
|
-
# RubyGems have a BIG performance problem when $LOADED_PATH starts to be
|
35
|
-
# big.
|
36
|
-
#
|
37
|
-
# So, if the sub-script is Ruby-based, just load it and exit
|
38
|
-
if File.readlines(binary).first =~ /ruby/
|
39
|
-
load binary
|
40
|
-
exit
|
41
|
-
else
|
42
|
-
exec(binary, *ARGV)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Find the autoproj root dir
|
47
|
-
Autoproj::CmdLine.report do
|
48
|
-
selected_packages = Autoproj::CmdLine.parse_arguments(ARGV.dup)
|
49
|
-
|
50
|
-
# Expand directories in the selected_packages set, before we chdir to the
|
51
|
-
# autoproj root
|
52
|
-
root_dir = Autoproj.root_dir
|
53
|
-
selected_packages.map! do |name|
|
54
|
-
if File.directory?(name)
|
55
|
-
File.expand_path(name) + File::SEPARATOR
|
56
|
-
else
|
57
|
-
name
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
needs_update_config = false
|
62
|
-
selected_packages.delete_if do |name|
|
63
|
-
if name =~ /^#{Regexp.quote(Autoproj.config_dir + File::SEPARATOR)}/ ||
|
64
|
-
name =~ /^#{Regexp.quote(Autoproj.remotes_dir + File::SEPARATOR)}/
|
65
|
-
needs_update_config = true
|
66
|
-
elsif (Autoproj.config_dir + File::SEPARATOR) =~ /^#{Regexp.quote(name)}/
|
67
|
-
needs_update_config = true
|
68
|
-
false
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
Dir.chdir(root_dir)
|
73
|
-
|
74
|
-
# Basic initialization
|
75
|
-
Autoproj::CmdLine.initialize
|
76
|
-
if needs_update_config
|
77
|
-
Autoproj::CmdLine.update_configuration
|
78
|
-
if selected_packages.empty?
|
79
|
-
exit 0
|
80
|
-
end
|
81
|
-
elsif selected_packages.empty?
|
82
|
-
Autoproj::CmdLine.update_myself
|
83
|
-
Autoproj::CmdLine.update_configuration
|
84
|
-
else
|
85
|
-
begin
|
86
|
-
old_value = Autobuild.do_update
|
87
|
-
Autobuild.do_update = false
|
88
|
-
Autoproj::CmdLine.update_configuration
|
89
|
-
ensure
|
90
|
-
Autobuild.do_update = old_value
|
91
|
-
end
|
92
|
-
end
|
93
|
-
Autoproj::CmdLine.load_configuration
|
94
|
-
manifest = Autoproj.manifest
|
95
|
-
|
96
|
-
Autoproj::CmdLine.setup_all_package_directories
|
97
|
-
# resolve_user_selection auto-adds packages present on disk but not listed
|
98
|
-
# in the manifest. However, since we have not yet loaded overrides /
|
99
|
-
# package blocks, it is possible that it contains excluded / ignored
|
100
|
-
# packages
|
101
|
-
#
|
102
|
-
# First do the resolution to get auto-add, finalize the package
|
103
|
-
# configuration, and then re-resolve
|
104
|
-
Autoproj::CmdLine.resolve_user_selection(selected_packages)
|
105
|
-
# Now load the rest of the configuration
|
106
|
-
Autoproj::CmdLine.finalize_package_setup
|
107
|
-
# Finally, filter out exclusions
|
108
|
-
resolved_selected_packages =
|
109
|
-
Autoproj::CmdLine.resolve_user_selection(selected_packages)
|
110
|
-
Autoproj::CmdLine.validate_user_selection(selected_packages, resolved_selected_packages)
|
111
|
-
|
112
|
-
if !selected_packages.empty?
|
113
|
-
command_line_selection = resolved_selected_packages.dup
|
114
|
-
else
|
115
|
-
command_line_selection = Array.new
|
116
|
-
end
|
117
|
-
Autoproj.manifest.explicit_selection = resolved_selected_packages
|
118
|
-
selected_packages = resolved_selected_packages
|
119
|
-
|
120
|
-
if other_root = Autoproj::CmdLine.update_from
|
121
|
-
Autobuild::Package.each do |_, pkg|
|
122
|
-
if pkg.importer.respond_to?(:pick_from_autoproj_root)
|
123
|
-
if !pkg.importer.pick_from_autoproj_root(pkg, other_root)
|
124
|
-
pkg.update = false
|
125
|
-
end
|
126
|
-
else
|
127
|
-
pkg.update = false
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
# If in verbose mode, or if we only update sources, list the sources
|
133
|
-
if Autoproj.verbose || Autoproj::CmdLine.display_configuration?
|
134
|
-
Autoproj::CmdLine.display_configuration(manifest, selected_packages.packages)
|
135
|
-
end
|
136
|
-
|
137
|
-
if Autoproj::CmdLine.only_config? || Autoproj::CmdLine.reconfigure?
|
138
|
-
exit(0)
|
139
|
-
end
|
140
|
-
|
141
|
-
if Autoproj::CmdLine.only_status?
|
142
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
143
|
-
result = Autoproj::CmdLine.status(all_enabled_packages)
|
144
|
-
if Autoproj::CmdLine.status_exit_code?
|
145
|
-
code = 0
|
146
|
-
if result.uncommitted
|
147
|
-
code |= 1
|
148
|
-
end
|
149
|
-
if result.local
|
150
|
-
code |= 2
|
151
|
-
end
|
152
|
-
if result.remote
|
153
|
-
code |= 4
|
154
|
-
end
|
155
|
-
exit(code)
|
156
|
-
else
|
157
|
-
exit(0)
|
158
|
-
end
|
159
|
-
elsif Autoproj::CmdLine.check?
|
160
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
161
|
-
Autoproj::CmdLine.check(all_enabled_packages)
|
162
|
-
exit(0)
|
163
|
-
elsif Autoproj::CmdLine.manifest_update?
|
164
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
165
|
-
Autoproj::CmdLine.manifest_update(all_enabled_packages)
|
166
|
-
exit(0)
|
167
|
-
elsif Autoproj::CmdLine.snapshot?
|
168
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
169
|
-
Autoproj::CmdLine.snapshot(Autoproj::CmdLine.snapshot_dir, all_enabled_packages)
|
170
|
-
exit(0)
|
171
|
-
elsif Autoproj::CmdLine.revshow_osdeps?
|
172
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
173
|
-
Autoproj::CmdLine.revshow_osdeps(all_enabled_packages)
|
174
|
-
exit(0)
|
175
|
-
elsif Autoproj::CmdLine.show_osdeps?
|
176
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
177
|
-
Autoproj::CmdLine.show_osdeps(all_enabled_packages)
|
178
|
-
exit(0)
|
179
|
-
elsif Autoproj::CmdLine.list_unused?
|
180
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
181
|
-
Autoproj::CmdLine.list_unused(all_enabled_packages)
|
182
|
-
exit(0)
|
183
|
-
end
|
184
|
-
|
185
|
-
STDERR.puts
|
186
|
-
STDERR.puts color("autoproj: importing and loading selected packages", :bold)
|
187
|
-
|
188
|
-
# Install prepackaged dependencies needed to import and build the packages.
|
189
|
-
# The required information is in the package sets configuration.
|
190
|
-
if Autoproj::CmdLine.update_os_dependencies?
|
191
|
-
Autoproj.osdeps.install(Autoproj.build_system_dependencies)
|
192
|
-
end
|
193
|
-
|
194
|
-
# Now, we actually do the import. Unfortunately, at this stage, we need to
|
195
|
-
# import the package and its dependencies ourselves so that we are able to
|
196
|
-
# build the list of packages that have actually been selected on the command
|
197
|
-
# line.
|
198
|
-
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
199
|
-
Autoproj::CmdLine.load_all_available_package_manifests(false)
|
200
|
-
Autoproj::CmdLine.export_installation_manifest
|
201
|
-
|
202
|
-
if Autoproj::CmdLine.update_os_dependencies? && !all_enabled_packages.empty?
|
203
|
-
begin
|
204
|
-
update_mode = Autobuild.do_update
|
205
|
-
Autobuild.do_update ||= Autoproj::CmdLine.osdeps?
|
206
|
-
manifest.install_os_dependencies(all_enabled_packages)
|
207
|
-
ensure
|
208
|
-
Autobuild.do_update = update_mode
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
if all_enabled_packages.empty?
|
213
|
-
STDERR.puts color("autoproj: nothing to do", :bold)
|
214
|
-
elsif Autoproj::CmdLine.build?
|
215
|
-
Autoproj.message("autoproj: building and installing packages", :bold)
|
216
|
-
Autoproj::CmdLine.build_packages(command_line_selection, all_enabled_packages)
|
217
|
-
end
|
218
|
-
|
219
|
-
if Autoproj::CmdLine.update_envsh?
|
220
|
-
Autoproj.export_env_sh
|
221
|
-
Autoproj.message "autoproj: updated #{Autoproj.root_dir}/#{Autoproj::ENV_FILENAME}", :green
|
222
|
-
end
|
223
|
-
|
224
|
-
if Autoproj::CmdLine.show_statistics?
|
225
|
-
per_phase = Hash.new
|
226
|
-
per_type = Hash.new
|
227
|
-
|
228
|
-
Autoproj.message
|
229
|
-
Autoproj.message "statistics about the build", :bold
|
230
|
-
|
231
|
-
Autoproj.manifest.each_autobuild_package.sort_by(&:name).each do |pkg|
|
232
|
-
next if pkg.statistics.empty?
|
233
|
-
|
234
|
-
if per_phase.empty?
|
235
|
-
Autoproj.message "detailed per package"
|
236
|
-
end
|
237
|
-
|
238
|
-
puts " #{pkg.name}: %.1fs" % [pkg.statistics.values.inject(&:+)]
|
239
|
-
pkg.statistics.each_key.sort.each do |phase|
|
240
|
-
per_phase[phase] ||= 0
|
241
|
-
per_phase[phase] += pkg.statistics[phase]
|
242
|
-
per_type[pkg.class] ||= Hash.new
|
243
|
-
per_type[pkg.class][phase] ||= 0
|
244
|
-
per_type[pkg.class][phase] += pkg.statistics[phase]
|
245
|
-
puts " #{phase}: %.1fs" % [pkg.statistics[phase]]
|
246
|
-
end
|
247
|
-
end
|
248
|
-
|
249
|
-
if !per_type.empty?
|
250
|
-
Autoproj.message
|
251
|
-
Autoproj.message "detailed per package type"
|
252
|
-
per_type.each do |pkg_type, phases|
|
253
|
-
Autoproj.message " #{pkg_type.name}: %.1fs" % [phases.values.inject(&:+)]
|
254
|
-
phases.each_key.sort.each do |phase_name|
|
255
|
-
Autoproj.message " #{phase_name}: %.1fs" % [phases[phase_name]]
|
256
|
-
end
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
if !per_phase.empty?
|
261
|
-
Autoproj.message
|
262
|
-
Autoproj.message "summary per phase"
|
263
|
-
per_phase.keys.sort.each do |phase_name|
|
264
|
-
Autoproj.message " #{phase_name}: %.1fs" % [per_phase[phase_name]]
|
265
|
-
end
|
266
|
-
end
|
267
|
-
end
|
268
|
-
end
|
5
|
+
require 'autoproj/cli/main'
|
6
|
+
Autoproj::CLI.basic_setup
|
7
|
+
Autoproj::CLI::Main.start(ARGV)
|
269
8
|
|