autobuild 1.19.0 → 1.22.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/lint.yml +25 -0
- data/.github/workflows/test.yml +30 -0
- data/.rubocop.yml +14 -7
- data/autobuild.gemspec +8 -6
- data/bin/autobuild +1 -1
- data/lib/autobuild/build_logfile.rb +1 -2
- data/lib/autobuild/config.rb +18 -5
- data/lib/autobuild/configurable.rb +3 -1
- data/lib/autobuild/environment.rb +28 -45
- data/lib/autobuild/exceptions.rb +11 -5
- data/lib/autobuild/import/archive.rb +31 -22
- data/lib/autobuild/import/cvs.rb +6 -6
- data/lib/autobuild/import/darcs.rb +4 -4
- data/lib/autobuild/import/git-lfs.rb +4 -4
- data/lib/autobuild/import/git.rb +149 -70
- data/lib/autobuild/import/hg.rb +7 -7
- data/lib/autobuild/import/svn.rb +15 -9
- data/lib/autobuild/importer.rb +38 -38
- data/lib/autobuild/mail_reporter.rb +5 -2
- data/lib/autobuild/package.rb +24 -14
- data/lib/autobuild/packages/autotools.rb +4 -9
- data/lib/autobuild/packages/cmake.rb +16 -7
- data/lib/autobuild/packages/dummy.rb +0 -4
- data/lib/autobuild/packages/gnumake.rb +1 -1
- data/lib/autobuild/packages/orogen.rb +11 -4
- data/lib/autobuild/packages/pkgconfig.rb +2 -2
- data/lib/autobuild/packages/python.rb +1 -2
- data/lib/autobuild/packages/ruby.rb +5 -5
- data/lib/autobuild/parallel.rb +12 -17
- data/lib/autobuild/pkgconfig.rb +1 -0
- data/lib/autobuild/progress_display.rb +130 -49
- data/lib/autobuild/rake_task_extension.rb +6 -0
- data/lib/autobuild/reporting.rb +20 -7
- data/lib/autobuild/subcommand.rb +24 -23
- data/lib/autobuild/test_utility.rb +2 -1
- data/lib/autobuild/timestamps.rb +3 -3
- data/lib/autobuild/utility.rb +29 -9
- data/lib/autobuild/version.rb +1 -1
- data/lib/autobuild.rb +0 -3
- metadata +42 -26
- data/.travis.yml +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48e8645a039ab9b7fa950f3264bc9e15a53901a82c34fef9a32e008f123b275e
|
4
|
+
data.tar.gz: e6cfbaba2cf060c25c8bced04d8577c20275d2aabbdc0aac123ed1b43a9df4a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 490828e178d20f24bc84d819cf9ac6fb3e6880cf5b9eb938fef540e18e8023008cd467d26fac61b46f531bb7abeadaa1822fd257437a7eb36d8c23ec8dc10906
|
7
|
+
data.tar.gz: e7eb1e3bc9bfb1f59852766113cfdb981331c595a78c9ef2f7bc530a9cf3594a64f8775b498c27f9ac534296e12393011e172c79129d7abbca69cae7581f6525
|
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Rubocop
|
2
|
+
|
3
|
+
on: [pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
ruby-version: ["2.7", "2.6", "2.5"]
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
16
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
17
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
18
|
+
# uses: ruby/setup-ruby@v1
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby-version }}
|
22
|
+
- name: Install dependencies
|
23
|
+
run: bundle install
|
24
|
+
- name: Run rubocop
|
25
|
+
run: bundle exec rubocop
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Unit Tests
|
2
|
+
|
3
|
+
on: [pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
ruby-version: ["2.7", "2.6", "2.5"]
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby ${{ matrix.ruby-version }}
|
16
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
17
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
18
|
+
# uses: ruby/setup-ruby@v1
|
19
|
+
uses: ruby/setup-ruby@v1
|
20
|
+
with:
|
21
|
+
ruby-version: ${{ matrix.ruby-version }}
|
22
|
+
- name: Install dependencies
|
23
|
+
run: bundle install
|
24
|
+
- name: Run tests
|
25
|
+
run: bundle exec rake test
|
26
|
+
env:
|
27
|
+
GIT_AUTHOR_NAME: autobuild CI Git Identity
|
28
|
+
GIT_AUTHOR_EMAIL: autobuild@github.actions
|
29
|
+
GIT_COMMITTER_NAME: autobuild CI Git Identity
|
30
|
+
GIT_COMMITTER_EMAIL: autobuild@github.actions
|
data/.rubocop.yml
CHANGED
@@ -2,7 +2,7 @@ inherit_gem:
|
|
2
2
|
rubocop-rock: defaults.yml
|
3
3
|
|
4
4
|
AllCops:
|
5
|
-
TargetRubyVersion: "2.
|
5
|
+
TargetRubyVersion: "2.5"
|
6
6
|
Exclude:
|
7
7
|
- lib/autobuild/packages/genom.rb
|
8
8
|
- vendor/**/*
|
@@ -17,9 +17,6 @@ Style/TrivialAccessors:
|
|
17
17
|
Naming/PredicateName:
|
18
18
|
Enabled: false
|
19
19
|
|
20
|
-
Lint/SplatKeywordArguments:
|
21
|
-
Enabled: false
|
22
|
-
|
23
20
|
Style/FrozenStringLiteralComment:
|
24
21
|
Enabled: false
|
25
22
|
|
@@ -33,7 +30,7 @@ Naming/FileName:
|
|
33
30
|
|
34
31
|
|
35
32
|
|
36
|
-
Layout/
|
33
|
+
Layout/ParameterAlignment:
|
37
34
|
Enabled: false
|
38
35
|
|
39
36
|
Layout/DotPosition:
|
@@ -42,7 +39,7 @@ Layout/DotPosition:
|
|
42
39
|
Layout/FirstParameterIndentation:
|
43
40
|
Enabled: false
|
44
41
|
|
45
|
-
Layout/
|
42
|
+
Layout/AssignmentIndentation:
|
46
43
|
Enabled: false
|
47
44
|
|
48
45
|
Layout/IndentationWidth:
|
@@ -96,7 +93,7 @@ Style/PerlBackrefs:
|
|
96
93
|
Style/StringLiterals:
|
97
94
|
Enabled: false
|
98
95
|
|
99
|
-
Layout/
|
96
|
+
Layout/HeredocIndentation:
|
100
97
|
Enabled: false
|
101
98
|
|
102
99
|
Metrics/LineLength:
|
@@ -104,4 +101,14 @@ Metrics/LineLength:
|
|
104
101
|
Exclude:
|
105
102
|
- test/**/*
|
106
103
|
|
104
|
+
Style/StringConcatenation:
|
105
|
+
Enabled: false
|
106
|
+
|
107
|
+
Style/StderrPuts:
|
108
|
+
Enabled: false
|
109
|
+
|
110
|
+
Style/GlobalStdStream:
|
111
|
+
Enabled: false
|
107
112
|
|
113
|
+
Style/OptionalBooleanParameter:
|
114
|
+
Enabled: false
|
data/autobuild.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'autobuild/version'
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "autobuild"
|
7
7
|
s.version = Autobuild::VERSION
|
8
|
-
s.required_ruby_version = '>= 2.
|
8
|
+
s.required_ruby_version = '>= 2.5.0'
|
9
9
|
s.authors = ["Sylvain Joyeux"]
|
10
10
|
s.email = "sylvain.joyeux@m4x.org"
|
11
11
|
s.summary = "Library to handle build systems and import mechanisms"
|
@@ -23,14 +23,16 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.files = `git ls-files -z`.split("\x0")
|
24
24
|
.reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
25
|
|
26
|
-
s.add_runtime_dependency
|
27
|
-
s.add_runtime_dependency "
|
28
|
-
s.add_runtime_dependency
|
29
|
-
s.add_runtime_dependency 'tty-
|
30
|
-
s.add_runtime_dependency 'tty-
|
26
|
+
s.add_runtime_dependency "concurrent-ruby", "~> 1.1"
|
27
|
+
s.add_runtime_dependency "pastel", "~> 0.7.0"
|
28
|
+
s.add_runtime_dependency "rake", "~> 13.0"
|
29
|
+
s.add_runtime_dependency 'tty-cursor', '~> 0.7.0'
|
30
|
+
s.add_runtime_dependency 'tty-prompt', '~> 0.21.0'
|
31
|
+
s.add_runtime_dependency 'tty-screen', '~> 0.8.0'
|
31
32
|
s.add_runtime_dependency "utilrb", "~> 3.0", ">= 3.0"
|
32
33
|
s.add_development_dependency "fakefs"
|
33
34
|
s.add_development_dependency "flexmock", '~> 2.0', ">= 2.0.0"
|
34
35
|
s.add_development_dependency "minitest", "~> 5.0", ">= 5.0"
|
35
36
|
s.add_development_dependency "simplecov"
|
37
|
+
s.add_development_dependency "timecop"
|
36
38
|
end
|
data/bin/autobuild
CHANGED
data/lib/autobuild/config.rb
CHANGED
@@ -198,7 +198,7 @@ module Autobuild
|
|
198
198
|
opts.separator ""
|
199
199
|
opts.separator "General behaviour"
|
200
200
|
opts.on('--nice NICE', Integer,
|
201
|
-
|
201
|
+
'nice the subprocesses to the given value') do |v|
|
202
202
|
Autobuild.nice = v
|
203
203
|
end
|
204
204
|
opts.on("-h", "--help", "Show this message") do
|
@@ -253,7 +253,7 @@ module Autobuild
|
|
253
253
|
opts.separator ""
|
254
254
|
opts.separator "Mail reports"
|
255
255
|
opts.on("--mail-from EMAIL", String,
|
256
|
-
|
256
|
+
"From: field of the sent mails") do |from_email|
|
257
257
|
mail[:from] = from_email
|
258
258
|
end
|
259
259
|
opts.on("--mail-to EMAILS", String, "comma-separated list of emails "\
|
@@ -262,7 +262,7 @@ module Autobuild
|
|
262
262
|
mail[:to] += emails.split(',')
|
263
263
|
end
|
264
264
|
opts.on("--mail-subject SUBJECT", String,
|
265
|
-
|
265
|
+
"Subject: field of the sent mails") do |subject_email|
|
266
266
|
mail[:subject] = subject_email
|
267
267
|
end
|
268
268
|
opts.on("--mail-smtp HOSTNAME", String, "address of the mail server "\
|
@@ -301,7 +301,7 @@ module Autobuild
|
|
301
301
|
|
302
302
|
def self.apply(packages, buildname = "autobuild", phases = [], options = Hash.new)
|
303
303
|
options = Kernel.validate_options options,
|
304
|
-
|
304
|
+
parallel: Autobuild.parallel_build_level
|
305
305
|
|
306
306
|
if Autobuild.mail[:to]
|
307
307
|
if !Autobuild::HAS_RMAIL
|
@@ -352,7 +352,20 @@ module Autobuild
|
|
352
352
|
invoker = Autobuild::RakeTaskParallelism.new(options[:parallel])
|
353
353
|
Autobuild.parallel_task_manager = invoker
|
354
354
|
phases.each do |phase|
|
355
|
-
|
355
|
+
package_tasks = packages.each_with_object({}) do |pkg_name, h|
|
356
|
+
h["#{pkg_name}-#{phase}"] = true
|
357
|
+
end
|
358
|
+
callback =
|
359
|
+
if block_given?
|
360
|
+
proc do |task|
|
361
|
+
yield(task.package, phase) if package_tasks[task.name]
|
362
|
+
end
|
363
|
+
else
|
364
|
+
proc {}
|
365
|
+
end
|
366
|
+
|
367
|
+
invoker.invoke_parallel([Rake::Task["#{buildname}-#{phase}"]],
|
368
|
+
completion_callback: callback)
|
356
369
|
end
|
357
370
|
ensure
|
358
371
|
Autobuild.parallel_task_manager = nil
|
@@ -109,6 +109,7 @@ module Autobuild
|
|
109
109
|
|
110
110
|
stamps = dependencies.map { |pkg| Autobuild::Package[pkg].installstamp }
|
111
111
|
file configurestamp => stamps do
|
112
|
+
@install_invoked = true
|
112
113
|
isolate_errors do
|
113
114
|
ensure_dependencies_installed
|
114
115
|
configure
|
@@ -118,6 +119,7 @@ module Autobuild
|
|
118
119
|
task "#{name}-prepare" => configurestamp
|
119
120
|
|
120
121
|
file buildstamp => [srcdir, configurestamp] do
|
122
|
+
@install_invoked = true
|
121
123
|
isolate_errors do
|
122
124
|
ensure_dependencies_installed
|
123
125
|
build
|
@@ -132,7 +134,7 @@ module Autobuild
|
|
132
134
|
def configure
|
133
135
|
if File.exist?(builddir) && !File.directory?(builddir)
|
134
136
|
raise ConfigException.new(self, 'configure'),
|
135
|
-
|
137
|
+
"#{builddir} already exists but is not a directory"
|
136
138
|
end
|
137
139
|
|
138
140
|
FileUtils.mkdir_p builddir unless File.directory?(builddir)
|
@@ -89,10 +89,7 @@ module Autobuild
|
|
89
89
|
# path separator (File::PATH_SEPARATOR)
|
90
90
|
attr_reader :environment
|
91
91
|
|
92
|
-
attr_reader :inherited_variables
|
93
|
-
|
94
|
-
attr_reader :system_env
|
95
|
-
attr_reader :original_env
|
92
|
+
attr_reader :inherited_variables, :system_env, :original_env, :target_arch
|
96
93
|
|
97
94
|
# The set of environment variables that are known to hold paths on the
|
98
95
|
# filesystem
|
@@ -162,7 +159,8 @@ module Autobuild
|
|
162
159
|
inherited_environment.delete(name)
|
163
160
|
init_from_env(name)
|
164
161
|
else
|
165
|
-
environment.keys
|
162
|
+
keys = environment.keys # get keys first to avoid delete-while-iterating
|
163
|
+
keys.each do |env_key|
|
166
164
|
reset(env_key)
|
167
165
|
end
|
168
166
|
end
|
@@ -180,7 +178,8 @@ module Autobuild
|
|
180
178
|
environment[name] = nil
|
181
179
|
inherited_environment[name] = nil
|
182
180
|
else
|
183
|
-
environment.keys
|
181
|
+
keys = environment.keys # get keys first to avoid delete-while-iterating
|
182
|
+
keys.each do |env_key|
|
184
183
|
clear(env_key)
|
185
184
|
end
|
186
185
|
end
|
@@ -228,7 +227,9 @@ module Autobuild
|
|
228
227
|
# @see inherit? inherit
|
229
228
|
def inherit=(value)
|
230
229
|
@inherit = value
|
231
|
-
|
230
|
+
# get keys first to avoid modify-while-iterating
|
231
|
+
keys = inherited_environment.keys
|
232
|
+
keys.each do |env_name|
|
232
233
|
init_from_env(env_name)
|
233
234
|
end
|
234
235
|
end
|
@@ -328,7 +329,7 @@ module Autobuild
|
|
328
329
|
end
|
329
330
|
end
|
330
331
|
options = Kernel.validate_options options,
|
331
|
-
|
332
|
+
inheritance_mode: :expand
|
332
333
|
inheritance_mode = options[:inheritance_mode]
|
333
334
|
|
334
335
|
if !include?(name)
|
@@ -511,8 +512,8 @@ module Autobuild
|
|
511
512
|
end
|
512
513
|
export.update.each do |name, (with_inheritance, without_inheritance)|
|
513
514
|
io.puts format(SHELL_CONDITIONAL_SET_COMMAND, name,
|
514
|
-
|
515
|
-
|
515
|
+
with_inheritance.join(File::PATH_SEPARATOR),
|
516
|
+
without_inheritance.join(File::PATH_SEPARATOR))
|
516
517
|
io.puts format(SHELL_EXPORT_COMMAND, name)
|
517
518
|
end
|
518
519
|
source_after(shell: shell).each do |path|
|
@@ -555,9 +556,8 @@ module Autobuild
|
|
555
556
|
# DEPRECATED: use add_path instead
|
556
557
|
def self.pathvar(path, varname)
|
557
558
|
if File.directory?(path)
|
558
|
-
if block_given?
|
559
|
-
|
560
|
-
end
|
559
|
+
return if block_given? && !yield(path)
|
560
|
+
|
561
561
|
add_path(varname, path)
|
562
562
|
end
|
563
563
|
end
|
@@ -614,8 +614,6 @@ module Autobuild
|
|
614
614
|
@arch_size, @arch_names = nil
|
615
615
|
end
|
616
616
|
|
617
|
-
attr_reader :target_arch
|
618
|
-
|
619
617
|
def arch_names
|
620
618
|
return @arch_names if @arch_names
|
621
619
|
|
@@ -635,38 +633,24 @@ module Autobuild
|
|
635
633
|
add_prefix(newprefix, includes)
|
636
634
|
end
|
637
635
|
|
638
|
-
|
639
|
-
PKGCONFIG_INFO = [
|
640
|
-
%r{Scanning directory (?:#\d+ )?'(.*/)((?:lib|lib64|share)/.*)'$},
|
641
|
-
%r{Cannot open directory (?:#\d+ )?'.*/((?:lib|lib64|share)/.*)' in package search path:.*}
|
642
|
-
].freeze
|
643
|
-
# rubocop:enable Metrics/LineLength
|
636
|
+
PKGCONFIG_PATH_RX = %r{.*/((?:lib|lib64|share)/.*)}.freeze
|
644
637
|
|
645
638
|
# Returns the system-wide search path that is embedded in pkg-config
|
646
639
|
def default_pkgconfig_search_suffixes
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
map { |l| l.gsub(found_path_rx, '\2') }.
|
655
|
-
to_set
|
656
|
-
not_found = output.grep(nonexistent_path_rx).
|
657
|
-
map { |l| l.gsub(nonexistent_path_rx, '\1') }.
|
658
|
-
to_set
|
659
|
-
@default_pkgconfig_search_suffixes = found_paths | not_found
|
660
|
-
end
|
661
|
-
@default_pkgconfig_search_suffixes
|
640
|
+
@default_pkgconfig_search_suffixes ||=
|
641
|
+
`LANG=C #{Autobuild.tool("pkg-config")} --variable pc_path pkg-config`
|
642
|
+
.strip
|
643
|
+
.split(":")
|
644
|
+
.grep(PKGCONFIG_PATH_RX)
|
645
|
+
.map { |l| l.gsub(PKGCONFIG_PATH_RX, '\1') }
|
646
|
+
.to_set
|
662
647
|
end
|
663
648
|
|
664
649
|
# Updates the environment when a new prefix has been added
|
665
650
|
def add_prefix(newprefix, includes = nil)
|
666
|
-
if !includes || includes.include?('PATH')
|
667
|
-
|
668
|
-
|
669
|
-
end
|
651
|
+
if (!includes || includes.include?('PATH')) &&
|
652
|
+
File.directory?("#{newprefix}/bin")
|
653
|
+
add_path('PATH', "#{newprefix}/bin")
|
670
654
|
end
|
671
655
|
|
672
656
|
if !includes || includes.include?('PKG_CONFIG_PATH')
|
@@ -717,7 +701,7 @@ module Autobuild
|
|
717
701
|
begin
|
718
702
|
stat = File.stat(full)
|
719
703
|
return full if stat.file? && stat.executable?
|
720
|
-
rescue ::Exception # rubocop:disable Lint/
|
704
|
+
rescue ::Exception # rubocop:disable Lint/SuppressedException
|
721
705
|
end
|
722
706
|
end
|
723
707
|
nil
|
@@ -743,7 +727,7 @@ module Autobuild
|
|
743
727
|
def prepare
|
744
728
|
# Set up some important autobuild parameters
|
745
729
|
inherit 'PATH', 'PKG_CONFIG_PATH', 'RUBYLIB', \
|
746
|
-
|
730
|
+
LIBRARY_PATH, 'CMAKE_PREFIX_PATH', 'PYTHONPATH'
|
747
731
|
end
|
748
732
|
|
749
733
|
# Method called to filter the environment variables before they are set,
|
@@ -868,9 +852,8 @@ module Autobuild
|
|
868
852
|
# @deprecated use {Env#add_path} on {.env} instead
|
869
853
|
def self.pathvar(path, varname)
|
870
854
|
if File.directory?(path)
|
871
|
-
if block_given?
|
872
|
-
|
873
|
-
end
|
855
|
+
return if block_given? && !yield(path)
|
856
|
+
|
874
857
|
env.add_path(varname, path)
|
875
858
|
end
|
876
859
|
end
|
data/lib/autobuild/exceptions.rb
CHANGED
@@ -24,6 +24,7 @@ module Autobuild
|
|
24
24
|
@target = target
|
25
25
|
@phase = phase
|
26
26
|
@retry = options[:retry]
|
27
|
+
super()
|
27
28
|
end
|
28
29
|
|
29
30
|
alias exception_message to_s
|
@@ -52,10 +53,11 @@ module Autobuild
|
|
52
53
|
class ConfigException < PhaseException
|
53
54
|
def initialize(target = nil, phase = nil, options = Hash.new)
|
54
55
|
options, other_options = Kernel.filter_options options,
|
55
|
-
|
56
|
+
retry: false
|
56
57
|
super(target, phase, options.merge(other_options))
|
57
58
|
end
|
58
59
|
end
|
60
|
+
|
59
61
|
## An error occured in a package
|
60
62
|
class PackageException < PhaseException
|
61
63
|
def mail?
|
@@ -64,7 +66,7 @@ module Autobuild
|
|
64
66
|
|
65
67
|
def initialize(target = nil, phase = nil, options = Hash.new)
|
66
68
|
options, other_options = Kernel.filter_options options,
|
67
|
-
|
69
|
+
retry: false
|
68
70
|
super(target, phase, options.merge(other_options))
|
69
71
|
end
|
70
72
|
end
|
@@ -76,6 +78,7 @@ module Autobuild
|
|
76
78
|
|
77
79
|
# The subcommand is not found
|
78
80
|
class CommandNotFound < PhaseException; end
|
81
|
+
|
79
82
|
# An error occured while running a subcommand
|
80
83
|
class SubcommandFailed < PhaseException
|
81
84
|
def mail?
|
@@ -84,8 +87,10 @@ module Autobuild
|
|
84
87
|
|
85
88
|
attr_writer :retry
|
86
89
|
attr_reader :command, :logfile, :status, :output
|
90
|
+
|
87
91
|
def initialize(*args)
|
88
|
-
|
92
|
+
case args.size
|
93
|
+
when 1
|
89
94
|
sc = args[0]
|
90
95
|
target = sc.target
|
91
96
|
command = sc.command
|
@@ -93,7 +98,7 @@ module Autobuild
|
|
93
98
|
status = sc.status
|
94
99
|
output = sc.output
|
95
100
|
@orig_message = sc.exception_message
|
96
|
-
|
101
|
+
when 4, 5
|
97
102
|
target, command, logfile, status, output = *args
|
98
103
|
else
|
99
104
|
raise ArgumentError, "wrong number of arguments, should be 1 or 4..5"
|
@@ -140,13 +145,14 @@ module Autobuild
|
|
140
145
|
|
141
146
|
# The exception type that is used to report multiple errors that occured
|
142
147
|
# when ignore_errors is set
|
143
|
-
class CompositeException <
|
148
|
+
class CompositeException < PhaseException
|
144
149
|
# The array of exception objects representing all the errors that
|
145
150
|
# occured during the build
|
146
151
|
attr_reader :original_errors
|
147
152
|
|
148
153
|
def initialize(original_errors)
|
149
154
|
@original_errors = original_errors
|
155
|
+
super()
|
150
156
|
end
|
151
157
|
|
152
158
|
def mail?
|