autoproj 2.10.2 → 2.11.0
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/.rubocop.yml +1 -1
- data/autoproj.gemspec +2 -1
- data/bin/autoproj_bootstrap +19 -19
- data/bin/autoproj_install +19 -19
- data/lib/autoproj/aruba_minitest.rb +15 -0
- data/lib/autoproj/autobuild_extensions/dsl.rb +34 -15
- data/lib/autoproj/base.rb +17 -6
- data/lib/autoproj/cli/build.rb +1 -0
- data/lib/autoproj/cli/doc.rb +4 -18
- data/lib/autoproj/cli/main.rb +8 -9
- data/lib/autoproj/cli/main_doc.rb +86 -0
- data/lib/autoproj/cli/main_plugin.rb +3 -0
- data/lib/autoproj/cli/main_test.rb +15 -0
- data/lib/autoproj/cli/test.rb +13 -84
- data/lib/autoproj/cli/update.rb +7 -4
- data/lib/autoproj/cli/utility.rb +139 -0
- data/lib/autoproj/configuration.rb +13 -0
- data/lib/autoproj/default.osdeps +7 -0
- data/lib/autoproj/manifest.rb +6 -15
- data/lib/autoproj/ops/build.rb +8 -14
- data/lib/autoproj/ops/import.rb +125 -78
- data/lib/autoproj/ops/install.rb +19 -19
- data/lib/autoproj/package_definition.rb +29 -10
- data/lib/autoproj/package_managers/bundler_manager.rb +167 -79
- data/lib/autoproj/package_manifest.rb +8 -5
- data/lib/autoproj/test.rb +3 -0
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +16 -0
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27b34232b7064fe41e6ffbf64a366c8177bd07176890ae94d4d2fb38cb6a9007
|
4
|
+
data.tar.gz: 6f10cee97b778a086dbe009dd19a7af9c3e416b9a18b18f1e7a8ae090a7dbda1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b01c93d7197d16bebd63aa83deba8c761950a848526b5ce23f06e90f0b7904ea07924b71ef3d428148779cc6ea83b577033e0b069e6b3c396f21feec2f249f3e
|
7
|
+
data.tar.gz: 99e5701cb311313f771d413c20eb6b37f9da8975636caf17c480cdfe695fe3d50f293f3c19260e17253540be3c5bda04e844391750df108321c4e2db9d6b1671
|
data/.rubocop.yml
CHANGED
data/autoproj.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
26
|
|
27
27
|
s.add_runtime_dependency "bundler"
|
28
|
-
s.add_runtime_dependency "autobuild", ">= 1.
|
28
|
+
s.add_runtime_dependency "autobuild", ">= 1.19.0"
|
29
29
|
s.add_runtime_dependency "backports", '~> 3.0'
|
30
30
|
s.add_runtime_dependency "utilrb", '~> 3.0.0', ">= 3.0.0"
|
31
31
|
s.add_runtime_dependency "thor", '~> 0.20.0'
|
@@ -40,5 +40,6 @@ Gem::Specification.new do |s|
|
|
40
40
|
s.add_development_dependency "simplecov"
|
41
41
|
s.add_development_dependency "aruba"
|
42
42
|
s.add_development_dependency "tty-cursor"
|
43
|
+
s.add_development_dependency "timecop"
|
43
44
|
end
|
44
45
|
|
data/bin/autoproj_bootstrap
CHANGED
@@ -242,54 +242,54 @@ module Autoproj
|
|
242
242
|
opt.on '--debug', 'Run in debug mode' do
|
243
243
|
@autoproj_options << '--debug'
|
244
244
|
end
|
245
|
-
opt.on '--gem-source=URL', String,
|
246
|
-
|
245
|
+
opt.on '--gem-source=URL', String, 'use this source for RubyGems '\
|
246
|
+
'instead of rubygems.org' do |url|
|
247
247
|
@gem_source = url
|
248
248
|
end
|
249
|
-
opt.on '--gems-path=PATH',
|
250
|
-
|
249
|
+
opt.on '--gems-path=PATH', 'install gems under this path instead '\
|
250
|
+
'of ~/.autoproj/gems' do |path|
|
251
251
|
self.gems_install_path = path
|
252
252
|
end
|
253
253
|
opt.on '--public-gems', "install gems in the default gem location" do
|
254
254
|
self.install_gems_in_gem_user_dir
|
255
255
|
end
|
256
|
-
opt.on '--version=VERSION_CONSTRAINT', String, 'use the provided
|
257
|
-
|
256
|
+
opt.on '--version=VERSION_CONSTRAINT', String, 'use the provided '\
|
257
|
+
'string as a version constraint for autoproj' do |version|
|
258
258
|
if @gemfile
|
259
259
|
raise "cannot give both --version and --gemfile"
|
260
260
|
end
|
261
261
|
@gemfile = default_gemfile_contents(version)
|
262
262
|
end
|
263
|
-
opt.on '--gemfile=PATH', String, 'use the given Gemfile to install
|
264
|
-
|
263
|
+
opt.on '--gemfile=PATH', String, 'use the given Gemfile to install '\
|
264
|
+
'autoproj instead of the default' do |path|
|
265
265
|
if @gemfile
|
266
266
|
raise "cannot give both --version and --gemfile"
|
267
267
|
end
|
268
268
|
@gemfile = File.read(path)
|
269
269
|
end
|
270
|
-
opt.on '--seed-config=PATH', String, 'path to a seed file that
|
271
|
-
|
270
|
+
opt.on '--seed-config=PATH', String, 'path to a seed file that '\
|
271
|
+
'should be used to initialize the configuration' do |path|
|
272
272
|
@config.merge!(YAML.load(File.read(path)))
|
273
273
|
end
|
274
|
-
opt.on '--prefer-os-independent-packages', 'prefer OS-independent
|
275
|
-
|
276
|
-
|
274
|
+
opt.on '--prefer-os-independent-packages', 'prefer OS-independent '\
|
275
|
+
'packages (such as a RubyGem) over their OS-packaged equivalent '\
|
276
|
+
'(e.g. the thor gem vs. the ruby-thor debian package)' do
|
277
277
|
@prefer_indep_over_os_packages = true
|
278
278
|
end
|
279
|
-
opt.on '--[no-]color', 'do not use colored output (enabled by
|
280
|
-
|
279
|
+
opt.on '--[no-]color', 'do not use colored output (enabled by '\
|
280
|
+
'default if the terminal supports it)' do |color|
|
281
281
|
if color then @autoproj_options << "--color"
|
282
282
|
else @autoproj_options << '--no-color'
|
283
283
|
end
|
284
284
|
end
|
285
|
-
opt.on '--[no-]progress', 'do not use progress output (enabled by
|
286
|
-
|
285
|
+
opt.on '--[no-]progress', 'do not use progress output (enabled by '\
|
286
|
+
'default if the terminal supports it)' do |progress|
|
287
287
|
if progress then @autoproj_options << "--progress"
|
288
288
|
else @autoproj_options << '--no-progress'
|
289
289
|
end
|
290
290
|
end
|
291
|
-
opt.on '--[no-]interactive', 'if non-interactive, use default
|
292
|
-
|
291
|
+
opt.on '--[no-]interactive', 'if non-interactive, use default '\
|
292
|
+
'answer for questions' do |flag|
|
293
293
|
if flag then @autoproj_options << "--interactive"
|
294
294
|
else @autoproj_options << "--no-interactive"
|
295
295
|
end
|
data/bin/autoproj_install
CHANGED
@@ -242,54 +242,54 @@ module Autoproj
|
|
242
242
|
opt.on '--debug', 'Run in debug mode' do
|
243
243
|
@autoproj_options << '--debug'
|
244
244
|
end
|
245
|
-
opt.on '--gem-source=URL', String,
|
246
|
-
|
245
|
+
opt.on '--gem-source=URL', String, 'use this source for RubyGems '\
|
246
|
+
'instead of rubygems.org' do |url|
|
247
247
|
@gem_source = url
|
248
248
|
end
|
249
|
-
opt.on '--gems-path=PATH',
|
250
|
-
|
249
|
+
opt.on '--gems-path=PATH', 'install gems under this path instead '\
|
250
|
+
'of ~/.autoproj/gems' do |path|
|
251
251
|
self.gems_install_path = path
|
252
252
|
end
|
253
253
|
opt.on '--public-gems', "install gems in the default gem location" do
|
254
254
|
self.install_gems_in_gem_user_dir
|
255
255
|
end
|
256
|
-
opt.on '--version=VERSION_CONSTRAINT', String, 'use the provided
|
257
|
-
|
256
|
+
opt.on '--version=VERSION_CONSTRAINT', String, 'use the provided '\
|
257
|
+
'string as a version constraint for autoproj' do |version|
|
258
258
|
if @gemfile
|
259
259
|
raise "cannot give both --version and --gemfile"
|
260
260
|
end
|
261
261
|
@gemfile = default_gemfile_contents(version)
|
262
262
|
end
|
263
|
-
opt.on '--gemfile=PATH', String, 'use the given Gemfile to install
|
264
|
-
|
263
|
+
opt.on '--gemfile=PATH', String, 'use the given Gemfile to install '\
|
264
|
+
'autoproj instead of the default' do |path|
|
265
265
|
if @gemfile
|
266
266
|
raise "cannot give both --version and --gemfile"
|
267
267
|
end
|
268
268
|
@gemfile = File.read(path)
|
269
269
|
end
|
270
|
-
opt.on '--seed-config=PATH', String, 'path to a seed file that
|
271
|
-
|
270
|
+
opt.on '--seed-config=PATH', String, 'path to a seed file that '\
|
271
|
+
'should be used to initialize the configuration' do |path|
|
272
272
|
@config.merge!(YAML.load(File.read(path)))
|
273
273
|
end
|
274
|
-
opt.on '--prefer-os-independent-packages', 'prefer OS-independent
|
275
|
-
|
276
|
-
|
274
|
+
opt.on '--prefer-os-independent-packages', 'prefer OS-independent '\
|
275
|
+
'packages (such as a RubyGem) over their OS-packaged equivalent '\
|
276
|
+
'(e.g. the thor gem vs. the ruby-thor debian package)' do
|
277
277
|
@prefer_indep_over_os_packages = true
|
278
278
|
end
|
279
|
-
opt.on '--[no-]color', 'do not use colored output (enabled by
|
280
|
-
|
279
|
+
opt.on '--[no-]color', 'do not use colored output (enabled by '\
|
280
|
+
'default if the terminal supports it)' do |color|
|
281
281
|
if color then @autoproj_options << "--color"
|
282
282
|
else @autoproj_options << '--no-color'
|
283
283
|
end
|
284
284
|
end
|
285
|
-
opt.on '--[no-]progress', 'do not use progress output (enabled by
|
286
|
-
|
285
|
+
opt.on '--[no-]progress', 'do not use progress output (enabled by '\
|
286
|
+
'default if the terminal supports it)' do |progress|
|
287
287
|
if progress then @autoproj_options << "--progress"
|
288
288
|
else @autoproj_options << '--no-progress'
|
289
289
|
end
|
290
290
|
end
|
291
|
-
opt.on '--[no-]interactive', 'if non-interactive, use default
|
292
|
-
|
291
|
+
opt.on '--[no-]interactive', 'if non-interactive, use default '\
|
292
|
+
'answer for questions' do |flag|
|
293
293
|
if flag then @autoproj_options << "--interactive"
|
294
294
|
else @autoproj_options << "--no-interactive"
|
295
295
|
end
|
@@ -25,6 +25,17 @@ def teardown
|
|
25
25
|
super
|
26
26
|
end
|
27
27
|
|
28
|
+
def generate_local_gemfile
|
29
|
+
path = expand_path("Gemfile.local")
|
30
|
+
File.open(path, 'w') do |io|
|
31
|
+
io.write <<~GEMFILE
|
32
|
+
source "https://rubygems.org"
|
33
|
+
gem "autoproj", path: "#{File.expand_path("../../", __dir__)}"
|
34
|
+
GEMFILE
|
35
|
+
end
|
36
|
+
path
|
37
|
+
end
|
38
|
+
|
28
39
|
def run_command_and_stop(*args, fail_on_error: true, **kwargs)
|
29
40
|
cmd = run_command(*args, **kwargs)
|
30
41
|
cmd.stop
|
@@ -38,6 +49,10 @@ def run_command(*args, **kwargs)
|
|
38
49
|
@aruba_api.run_command(*args, **kwargs)
|
39
50
|
end
|
40
51
|
|
52
|
+
def cd(*args) # also defined by Rake
|
53
|
+
@aruba_api.cd(*args)
|
54
|
+
end
|
55
|
+
|
41
56
|
def chmod(*args) # also defined by Rake
|
42
57
|
@aruba_api.chmod(*args)
|
43
58
|
end
|
@@ -185,10 +185,24 @@ def import_package(name, workspace: Autoproj.workspace, &block)
|
|
185
185
|
def python_package(name, workspace: Autoproj.workspace)
|
186
186
|
package_common(:python, name, workspace: workspace) do |pkg|
|
187
187
|
pkg.internal_dependency 'python'
|
188
|
+
pkg.post_import do
|
189
|
+
pkg.depends_on 'python-setuptools' if pkg.install_mode?
|
190
|
+
end
|
188
191
|
yield(pkg) if block_given?
|
189
192
|
end
|
190
193
|
end
|
191
194
|
|
195
|
+
def common_make_default_test_task(pkg)
|
196
|
+
unless pkg.test_utility.source_dir
|
197
|
+
test_dir = File.join(pkg.srcdir, 'test')
|
198
|
+
if File.directory?(test_dir)
|
199
|
+
pkg.test_utility.source_dir = File.join(pkg.builddir, 'test', 'results')
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
pkg.with_tests if pkg.test_utility.source_dir
|
204
|
+
end
|
205
|
+
|
192
206
|
def common_make_based_package_setup(pkg)
|
193
207
|
unless pkg.has_doc? && pkg.doc_dir
|
194
208
|
pkg.with_doc do
|
@@ -198,14 +212,11 @@ def common_make_based_package_setup(pkg)
|
|
198
212
|
end
|
199
213
|
|
200
214
|
unless pkg.test_utility.has_task?
|
201
|
-
|
202
|
-
|
203
|
-
if File.directory?(test_dir)
|
204
|
-
pkg.test_utility.source_dir = File.join(pkg.builddir, 'test', 'results')
|
205
|
-
end
|
215
|
+
pkg.post_import do
|
216
|
+
common_make_default_test_task(pkg)
|
206
217
|
end
|
207
|
-
|
208
|
-
pkg
|
218
|
+
# BACKWARD COMPATIBILITY ONLY. REMOVE FOR AUTOPROJ 3.0
|
219
|
+
common_make_default_test_task(pkg)
|
209
220
|
end
|
210
221
|
end
|
211
222
|
|
@@ -264,6 +275,18 @@ def env_add(name, value)
|
|
264
275
|
Autoproj.env.add(name, value)
|
265
276
|
end
|
266
277
|
|
278
|
+
def ruby_package_default_test_task(pkg)
|
279
|
+
unless pkg.test_utility.source_dir
|
280
|
+
test_dir = File.join(pkg.srcdir, 'test')
|
281
|
+
if File.directory?(test_dir)
|
282
|
+
pkg.test_utility.source_dir = File.join(pkg.srcdir, '.test-results')
|
283
|
+
FileUtils.mkdir_p pkg.test_utility.source_dir
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
pkg.with_tests if pkg.test_utility.source_dir
|
288
|
+
end
|
289
|
+
|
267
290
|
# Defines a Ruby package
|
268
291
|
#
|
269
292
|
# Example:
|
@@ -284,15 +307,11 @@ def ruby_package(name, workspace: Autoproj.workspace)
|
|
284
307
|
pkg.with_doc if !pkg.has_doc? && pkg.rake_doc_task
|
285
308
|
|
286
309
|
unless pkg.test_utility.has_task?
|
287
|
-
|
288
|
-
|
289
|
-
if File.directory?(test_dir)
|
290
|
-
pkg.test_utility.source_dir = File.join(pkg.srcdir, '.test-results')
|
291
|
-
FileUtils.mkdir_p pkg.test_utility.source_dir
|
292
|
-
end
|
310
|
+
pkg.post_import do
|
311
|
+
ruby_package_default_test_task(pkg)
|
293
312
|
end
|
294
|
-
|
295
|
-
pkg
|
313
|
+
# BACKWARD COMPATIBILITY ONLY. REMOVE FOR AUTOPROJ 3.0
|
314
|
+
ruby_package_default_test_task(pkg)
|
296
315
|
end
|
297
316
|
|
298
317
|
yield(pkg) if block_given?
|
data/lib/autoproj/base.rb
CHANGED
@@ -6,12 +6,11 @@ module Autoproj
|
|
6
6
|
else
|
7
7
|
ArgumentError
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
# Yields, and if the given block raises a ConfigError with no file assigned,
|
11
11
|
# add that file to both the object and the exception message
|
12
12
|
def self.in_file(file, exception_t = ConfigError)
|
13
13
|
yield
|
14
|
-
|
15
14
|
rescue exception_t => e
|
16
15
|
if exception_t != ConfigError
|
17
16
|
raise ConfigError.new(file), "in #{file}: #{e.message}", e.backtrace
|
@@ -28,21 +27,33 @@ class << self
|
|
28
27
|
attr_reader :post_import_blocks
|
29
28
|
end
|
30
29
|
|
30
|
+
# Enumerate the post-import blocks registered for the given package
|
31
|
+
#
|
32
|
+
# @param [PackageDefinition] pkg
|
33
|
+
# @see post_import
|
31
34
|
def self.each_post_import_block(pkg, &block)
|
35
|
+
# We use Autobuild packages as keys
|
36
|
+
pkg = pkg.autobuild if pkg.respond_to?(:autobuild)
|
37
|
+
|
32
38
|
@post_import_blocks[nil].each(&block)
|
33
|
-
|
34
|
-
@post_import_blocks[pkg].each(&block)
|
35
|
-
end
|
39
|
+
@post_import_blocks[pkg]&.each(&block)
|
36
40
|
end
|
37
41
|
|
42
|
+
# Register a block that should be called after a set of package(s) have
|
43
|
+
# been imported
|
44
|
+
#
|
45
|
+
# @overload post_import(&block) register the block for all packages
|
46
|
+
# @overload post_import(*packages, &block)
|
47
|
+
# @param [Array<Autobuild::Package,PackageDefinition>] packages
|
38
48
|
def self.post_import(*packages, &block)
|
39
49
|
if packages.empty?
|
40
50
|
@post_import_blocks[nil] << block
|
41
51
|
else
|
42
52
|
packages.each do |pkg|
|
53
|
+
# We use Autobuild packages as keys
|
54
|
+
pkg = pkg.autobuild if pkg.respond_to?(:autobuild)
|
43
55
|
@post_import_blocks[pkg] << block
|
44
56
|
end
|
45
57
|
end
|
46
58
|
end
|
47
59
|
end
|
48
|
-
|
data/lib/autoproj/cli/build.rb
CHANGED
data/lib/autoproj/cli/doc.rb
CHANGED
@@ -1,24 +1,10 @@
|
|
1
|
-
require 'autoproj/cli/
|
1
|
+
require 'autoproj/cli/utility'
|
2
2
|
|
3
3
|
module Autoproj
|
4
4
|
module CLI
|
5
|
-
class Doc <
|
6
|
-
def
|
7
|
-
|
8
|
-
if options[:no_deps_shortcut]
|
9
|
-
options[:deps] = false
|
10
|
-
end
|
11
|
-
return packages, options
|
12
|
-
end
|
13
|
-
|
14
|
-
def run(user_selection, deps: true)
|
15
|
-
initialize_and_load
|
16
|
-
packages, _ =
|
17
|
-
finalize_setup(user_selection, recursive: deps)
|
18
|
-
packages.each do |pkg|
|
19
|
-
ws.manifest.find_autobuild_package(pkg).disable_phases('import', 'prepare', 'install')
|
20
|
-
end
|
21
|
-
Autobuild.apply(packages, "autoproj-doc", ['doc'])
|
5
|
+
class Doc < Utility
|
6
|
+
def initialize(ws = Workspace.default, name: 'doc')
|
7
|
+
super
|
22
8
|
end
|
23
9
|
end
|
24
10
|
end
|
data/lib/autoproj/cli/main.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'tty/color'
|
3
|
+
require 'autoproj/cli/main_doc'
|
3
4
|
require 'autoproj/cli/main_test'
|
4
5
|
require 'autoproj/cli/main_plugin'
|
5
6
|
require 'autoproj/cli/main_global'
|
@@ -37,6 +38,10 @@ class Main < Thor
|
|
37
38
|
stop_on_unknown_option! :exec
|
38
39
|
check_unknown_options! except: :exec
|
39
40
|
|
41
|
+
def self.exit_on_failure?
|
42
|
+
true
|
43
|
+
end
|
44
|
+
|
40
45
|
class << self
|
41
46
|
# @api private
|
42
47
|
#
|
@@ -183,15 +188,6 @@ def status(*packages)
|
|
183
188
|
run_autoproj_cli(:status, :Status, Hash[], *packages)
|
184
189
|
end
|
185
190
|
|
186
|
-
desc 'doc [PACKAGES]', 'generate API documentation for packages that support it'
|
187
|
-
option :deps, type: :boolean, default: true,
|
188
|
-
desc: 'control whether documentation should be generated only for the packages given on the command line, or also for their dependencies. -n is a shortcut for --no-deps'
|
189
|
-
option :no_deps_shortcut, hide: true, aliases: '-n', type: :boolean,
|
190
|
-
desc: 'provide -n for --no-deps'
|
191
|
-
def doc(*packages)
|
192
|
-
run_autoproj_cli(:doc, :Doc, Hash[], *packages)
|
193
|
-
end
|
194
|
-
|
195
191
|
desc 'update [PACKAGES]', 'update packages'
|
196
192
|
option :aup, default: false, hide: true, type: :boolean,
|
197
193
|
desc: 'behave like aup'
|
@@ -360,6 +356,9 @@ def reconfigure
|
|
360
356
|
desc 'test', 'interface for running tests'
|
361
357
|
subcommand 'test', MainTest
|
362
358
|
|
359
|
+
desc 'doc', 'interface for generating documentation'
|
360
|
+
subcommand 'doc', MainDoc
|
361
|
+
|
363
362
|
desc 'show [PACKAGES]', 'show informations about package(s)'
|
364
363
|
option :mainline, type: :string,
|
365
364
|
desc: "compare to the given baseline. if 'true', the comparison will ignore any override, otherwise it will take into account overrides only up to the given package set"
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Autoproj
|
2
|
+
module CLI
|
3
|
+
class MainDoc < Thor
|
4
|
+
namespace 'doc'
|
5
|
+
|
6
|
+
default_command 'exec'
|
7
|
+
|
8
|
+
no_commands do
|
9
|
+
def report(report_options = Hash.new)
|
10
|
+
options = self.options.merge(parent_options)
|
11
|
+
extra_options = Hash.new
|
12
|
+
if Autobuild::Subprocess.transparent_mode = options[:tool]
|
13
|
+
Autobuild.silent = true
|
14
|
+
Autobuild.color = false
|
15
|
+
report_options[:silent] = true
|
16
|
+
report_options[:on_package_failures] = :exit_silent
|
17
|
+
extra_options[:silent] = true
|
18
|
+
end
|
19
|
+
Autoproj.report(**Hash[debug: options[:debug]].merge(report_options)) do
|
20
|
+
yield(extra_options)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'enable [PACKAGES]', 'enable docs for the given packages (or for all packages if none are given)'
|
26
|
+
option :deps, type: :boolean, default: false,
|
27
|
+
desc: 'controls whether the dependencies of the packages given on the command line should be enabled as well (the default is not)'
|
28
|
+
def enable(*packages)
|
29
|
+
require 'autoproj/cli/doc'
|
30
|
+
report(silent: true) do
|
31
|
+
cli = Doc.new
|
32
|
+
args = cli.validate_options(packages, options)
|
33
|
+
cli.enable(*args)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'disable [PACKAGES]', 'disable docs for the given packages (or for all packages if none are given)'
|
38
|
+
option :deps, type: :boolean, default: false,
|
39
|
+
desc: 'controls whether the dependencies of the packages given on the command line should be disabled as well (the default is not)'
|
40
|
+
def disable(*packages)
|
41
|
+
require 'autoproj/cli/doc'
|
42
|
+
report(silent: true) do
|
43
|
+
cli = Doc.new
|
44
|
+
args = cli.validate_options(packages, options)
|
45
|
+
cli.disable(*args)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
desc 'list [PACKAGES]', 'show doc enable/disable status for the given packages (or all packages if none are given)'
|
50
|
+
option :deps, type: :boolean, default: true,
|
51
|
+
desc: 'controls whether the dependencies of the packages given on the command line should be disabled as well (the default is not)'
|
52
|
+
def list(*packages)
|
53
|
+
require 'autoproj/cli/doc'
|
54
|
+
report(silent: true) do
|
55
|
+
cli = Doc.new
|
56
|
+
args = cli.validate_options(packages, options)
|
57
|
+
cli.list(*args)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
desc 'exec [PACKAGES]', 'generate documentation for the given packages, or all if no packages are given on the command line'
|
62
|
+
option :deps, type: :boolean, default: false,
|
63
|
+
desc: 'controls whether to generate documentation of the dependencies of the packages given on the command line (the default is not)'
|
64
|
+
option :no_deps_shortcut, hide: true, aliases: '-n', type: :boolean,
|
65
|
+
desc: 'provide -n for --no-deps'
|
66
|
+
option :parallel, aliases: :p, type: :numeric,
|
67
|
+
desc: 'maximum number of parallel jobs'
|
68
|
+
option :tool, type: :boolean, default: false,
|
69
|
+
desc: "run in tool mode, which do not redirect the subcommand's outputs"
|
70
|
+
option :color, type: :boolean, default: TTY::Color.color?,
|
71
|
+
desc: 'enables or disables colored display (enabled by default if the terminal supports it)'
|
72
|
+
option :progress, type: :boolean, default: TTY::Color.color?,
|
73
|
+
desc: 'enables or disables progress display (enabled by default if the terminal supports it)'
|
74
|
+
def exec(*packages)
|
75
|
+
require 'autoproj/cli/doc'
|
76
|
+
options = self.options.merge(parent_options)
|
77
|
+
report do |extra_options|
|
78
|
+
cli = Doc.new
|
79
|
+
options.delete(:tool)
|
80
|
+
args = cli.validate_options(packages, options.merge(extra_options))
|
81
|
+
cli.run(*args)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|