autoproj 2.3.1 → 2.4.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/.travis.yml +4 -3
- data/.vscode/launch.json +25 -0
- data/Gemfile +10 -3
- data/autoproj.gemspec +1 -1
- data/bin/autoproj_bootstrap +5 -3
- data/bin/autoproj_bootstrap.in +5 -3
- data/bin/autoproj_install +2 -2
- data/bin/autoproj_install.in +2 -2
- data/lib/autoproj.rb +3 -1
- data/lib/autoproj/build_option.rb +4 -4
- data/lib/autoproj/cli.rb +10 -1
- data/lib/autoproj/cli/base.rb +14 -4
- data/lib/autoproj/cli/bootstrap.rb +2 -2
- data/lib/autoproj/cli/cache.rb +4 -10
- data/lib/autoproj/cli/clean.rb +1 -1
- data/lib/autoproj/cli/commit.rb +1 -1
- data/lib/autoproj/cli/exec.rb +11 -5
- data/lib/autoproj/cli/locate.rb +12 -12
- data/lib/autoproj/cli/log.rb +1 -2
- data/lib/autoproj/cli/main.rb +23 -4
- data/lib/autoproj/cli/main_plugin.rb +2 -2
- data/lib/autoproj/cli/manifest.rb +6 -3
- data/lib/autoproj/cli/query.rb +71 -10
- data/lib/autoproj/cli/reset.rb +4 -4
- data/lib/autoproj/cli/switch_config.rb +2 -2
- data/lib/autoproj/cli/tag.rb +2 -2
- data/lib/autoproj/cli/update.rb +2 -0
- data/lib/autoproj/cli/which.rb +17 -0
- data/lib/autoproj/exceptions.rb +9 -4
- data/lib/autoproj/git_server_configuration.rb +80 -53
- data/lib/autoproj/manifest.rb +1 -1
- data/lib/autoproj/ops/cache.rb +21 -10
- data/lib/autoproj/ops/main_config_switcher.rb +6 -9
- data/lib/autoproj/os_package_query.rb +99 -0
- data/lib/autoproj/package_managers/bundler_manager.rb +8 -1
- data/lib/autoproj/package_managers/yum_manager.rb +2 -2
- data/lib/autoproj/package_managers/zypper_manager.rb +2 -2
- data/lib/autoproj/query_base.rb +128 -0
- data/lib/autoproj/reporter.rb +12 -0
- data/lib/autoproj/{query.rb → source_package_query.rb} +15 -81
- data/lib/autoproj/version.rb +1 -1
- data/lib/autoproj/workspace.rb +38 -0
- metadata +8 -5
- data/lib/autoproj/cli/snapshot.rb +0 -66
data/lib/autoproj/version.rb
CHANGED
data/lib/autoproj/workspace.rb
CHANGED
@@ -701,6 +701,44 @@ def register_package(package, block = nil, package_set = manifest.main_package_s
|
|
701
701
|
pkg.autobuild.ws = self
|
702
702
|
pkg
|
703
703
|
end
|
704
|
+
|
705
|
+
class ExecutableNotFound < ArgumentError
|
706
|
+
end
|
707
|
+
|
708
|
+
# Find the given executable file in PATH
|
709
|
+
#
|
710
|
+
# If `cmd` is an absolute path, it will either return it or raise if
|
711
|
+
# `cmd` is not executable. Otherwise, looks for an executable named
|
712
|
+
# `cmd` in PATH and returns it, or raises if it cannot be found. The
|
713
|
+
# exception contains a more detailed reason for failure
|
714
|
+
#
|
715
|
+
#
|
716
|
+
# @param [String] cmd
|
717
|
+
# @return [String] the resolved program
|
718
|
+
# @raise [ExecutableNotFound] if an executable file named `cmd` cannot
|
719
|
+
# be found
|
720
|
+
def which(cmd)
|
721
|
+
path = Pathname.new(cmd)
|
722
|
+
if path.absolute?
|
723
|
+
if path.file? && path.executable?
|
724
|
+
return cmd
|
725
|
+
elsif path.exist?
|
726
|
+
raise ExecutableNotFound.new(cmd), "given command `#{cmd}` exists but is not an executable file"
|
727
|
+
else
|
728
|
+
raise ExecutableNotFound.new(cmd), "given command `#{cmd}` does not exist, an executable file was expected"
|
729
|
+
end
|
730
|
+
else
|
731
|
+
env = full_env
|
732
|
+
absolute = env.find_executable_in_path(cmd)
|
733
|
+
if absolute
|
734
|
+
return absolute
|
735
|
+
elsif file = env.find_in_path(cmd)
|
736
|
+
raise ExecutableNotFound.new(cmd), "`#{cmd}` resolves to #{file} which is not executable"
|
737
|
+
else
|
738
|
+
raise ExecutableNotFound.new(cmd), "cannot resolve `#{cmd}` to an executable in the workspace"
|
739
|
+
end
|
740
|
+
end
|
741
|
+
end
|
704
742
|
end
|
705
743
|
|
706
744
|
def self.workspace
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -228,6 +228,7 @@ files:
|
|
228
228
|
- ".gitattributes"
|
229
229
|
- ".gitignore"
|
230
230
|
- ".travis.yml"
|
231
|
+
- ".vscode/launch.json"
|
231
232
|
- Gemfile
|
232
233
|
- History.txt
|
233
234
|
- README.md
|
@@ -274,13 +275,13 @@ files:
|
|
274
275
|
- lib/autoproj/cli/reconfigure.rb
|
275
276
|
- lib/autoproj/cli/reset.rb
|
276
277
|
- lib/autoproj/cli/show.rb
|
277
|
-
- lib/autoproj/cli/snapshot.rb
|
278
278
|
- lib/autoproj/cli/status.rb
|
279
279
|
- lib/autoproj/cli/switch_config.rb
|
280
280
|
- lib/autoproj/cli/tag.rb
|
281
281
|
- lib/autoproj/cli/test.rb
|
282
282
|
- lib/autoproj/cli/update.rb
|
283
283
|
- lib/autoproj/cli/versions.rb
|
284
|
+
- lib/autoproj/cli/which.rb
|
284
285
|
- lib/autoproj/configuration.rb
|
285
286
|
- lib/autoproj/default.osdeps
|
286
287
|
- lib/autoproj/environment.rb
|
@@ -303,6 +304,7 @@ files:
|
|
303
304
|
- lib/autoproj/ops/tools.rb
|
304
305
|
- lib/autoproj/options.rb
|
305
306
|
- lib/autoproj/os_package_installer.rb
|
307
|
+
- lib/autoproj/os_package_query.rb
|
306
308
|
- lib/autoproj/os_package_resolver.rb
|
307
309
|
- lib/autoproj/package_definition.rb
|
308
310
|
- lib/autoproj/package_managers/apt_dpkg_manager.rb
|
@@ -322,8 +324,9 @@ files:
|
|
322
324
|
- lib/autoproj/package_manifest.rb
|
323
325
|
- lib/autoproj/package_selection.rb
|
324
326
|
- lib/autoproj/package_set.rb
|
325
|
-
- lib/autoproj/
|
327
|
+
- lib/autoproj/query_base.rb
|
326
328
|
- lib/autoproj/reporter.rb
|
329
|
+
- lib/autoproj/source_package_query.rb
|
327
330
|
- lib/autoproj/system.rb
|
328
331
|
- lib/autoproj/templates/create-set/packages.autobuild
|
329
332
|
- lib/autoproj/templates/create-set/source.yml
|
@@ -353,7 +356,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
353
356
|
requirements:
|
354
357
|
- - ">="
|
355
358
|
- !ruby/object:Gem::Version
|
356
|
-
version: 2.
|
359
|
+
version: 2.1.0
|
357
360
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
358
361
|
requirements:
|
359
362
|
- - ">="
|
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'autoproj'
|
2
|
-
require 'autoproj/cli/versions'
|
3
|
-
|
4
|
-
module Autoproj
|
5
|
-
module CLI
|
6
|
-
class Snapshot
|
7
|
-
include Ops::Tools
|
8
|
-
|
9
|
-
attr_reader :manifest
|
10
|
-
|
11
|
-
def initialize(manifest)
|
12
|
-
@manifest = manifest
|
13
|
-
end
|
14
|
-
|
15
|
-
def parse_options(args)
|
16
|
-
options = Hash.new
|
17
|
-
parser = OptionParser.new do |opt|
|
18
|
-
opt.on '-k', '--keep-going', "ignore packages that can't be snapshotted (the default is to terminate with an error)" do
|
19
|
-
options[:keep_going] = true
|
20
|
-
end
|
21
|
-
end
|
22
|
-
common_options(parser)
|
23
|
-
remaining_args = parser.parse(args)
|
24
|
-
return remaining_args, options
|
25
|
-
end
|
26
|
-
|
27
|
-
def run(target_dir, options)
|
28
|
-
# First, copy the configuration directory to create target_dir
|
29
|
-
#
|
30
|
-
# This must be done first as the snapshot calls might copy stuff in
|
31
|
-
# there
|
32
|
-
if File.exist?(target_dir)
|
33
|
-
raise ArgumentError, "#{target_dir} already exists"
|
34
|
-
end
|
35
|
-
FileUtils.cp_r Autoproj.config_dir, target_dir
|
36
|
-
|
37
|
-
begin
|
38
|
-
versions = Versions.new(manifest)
|
39
|
-
versions_file = File.join(
|
40
|
-
target_dir,
|
41
|
-
Workspace::OVERRIDES_DIR,
|
42
|
-
Versions::DEFAULT_VERSIONS_FILE_BASENAME)
|
43
|
-
|
44
|
-
versions.run([],
|
45
|
-
replace: true,
|
46
|
-
package_sets: true,
|
47
|
-
keep_going: options[:keep_going],
|
48
|
-
output_file: versions_file)
|
49
|
-
rescue ::Exception
|
50
|
-
FileUtils.rm_rf target_dir
|
51
|
-
raise
|
52
|
-
end
|
53
|
-
|
54
|
-
# Finally, remove the remotes/ directory from the generated
|
55
|
-
# buildconf, it is obsolete now
|
56
|
-
FileUtils.rm_rf File.join(target_dir, 'remotes')
|
57
|
-
|
58
|
-
Autoproj.message "successfully created a snapshot of the current autoproj configuration in #{target_dir}"
|
59
|
-
end
|
60
|
-
|
61
|
-
def notify_env_sh_updated
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|