autoproj 1.7.13 → 1.7.14.rc1
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.
- data/.gemtest +0 -0
- data/History.txt +20 -0
- data/Rakefile +1 -0
- data/bin/amake +6 -7
- data/bin/autoproj +18 -1
- data/bin/autoproj_bootstrap +19 -29
- data/lib/autoproj/cmdline.rb +2 -4
- data/lib/autoproj/manifest.rb +24 -8
- data/lib/autoproj/osdeps.rb +6 -1
- data/lib/autoproj/query.rb +92 -25
- data/lib/autoproj/system.rb +13 -28
- data/lib/autoproj/version.rb +1 -1
- data/shell/autoproj_bash +1 -1
- data/shell/autoproj_zsh +1 -1
- metadata +19 -15
data/.gemtest
ADDED
|
File without changes
|
data/History.txt
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
= Version 1.7.14
|
|
2
|
+
* fix support for local package sets, i.e. package sets that are saved in
|
|
3
|
+
autoproj/directory_name and are part of the main configuration VCS.
|
|
4
|
+
* fix behavior of autoproj when adding a remote package set in
|
|
5
|
+
autoproj/manifest and calling amake my/package right away. Until now,
|
|
6
|
+
autoproj was yelling with a criptic message. It will now behave and check out
|
|
7
|
+
the new package set.
|
|
8
|
+
* add support for sourcing shell scripts from env.sh:
|
|
9
|
+
Autoproj.env_source_file(path)
|
|
10
|
+
* fix a Ruby 1.9 incompatibility
|
|
11
|
+
* better performance in e.g. autoproj query and autoproj locate (this speeds up
|
|
12
|
+
acd)
|
|
13
|
+
* accept amake --rebuild the same way than amake --force was accepted until now
|
|
14
|
+
* add support for including manifest.xml files in the package sets. This is
|
|
15
|
+
meant to be used for external packages that do not provide a manifest.
|
|
16
|
+
The manifests are listed in the package set's manifests/ subdirectory and
|
|
17
|
+
must match the package name, as e.g.
|
|
18
|
+
rock.git/external/yaml-cpp.xml
|
|
19
|
+
The package set's manifest takes precedence over the package one.
|
|
20
|
+
|
|
1
21
|
= Version 1.7.13
|
|
2
22
|
* bugfix release: fix HTTP fallback mechanism for gitorious servers
|
|
3
23
|
|
data/Rakefile
CHANGED
data/bin/amake
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require 'optparse'
|
|
4
4
|
|
|
5
5
|
build_all = false
|
|
6
|
-
|
|
6
|
+
mode = "build"
|
|
7
7
|
|
|
8
8
|
parser = OptionParser.new do |opt|
|
|
9
9
|
opt.banner = "amake [options] [dir_or_package]
|
|
@@ -17,7 +17,10 @@ Accepts all options from autoproj build plus the following options:
|
|
|
17
17
|
build_all = true
|
|
18
18
|
end
|
|
19
19
|
opt.on('--force', 'runs autoproj force-build instead of autoproj build') do
|
|
20
|
-
|
|
20
|
+
mode = "force-build"
|
|
21
|
+
end
|
|
22
|
+
opt.on('--rebuild', 'runs autoproj force-build instead of autoproj build') do
|
|
23
|
+
mode = "rebuild"
|
|
21
24
|
end
|
|
22
25
|
opt.on('--help', 'shows this help message') do
|
|
23
26
|
puts parser
|
|
@@ -45,11 +48,7 @@ if remaining.grep(/^-/).size == remaining.size && !build_all
|
|
|
45
48
|
remaining.push '.'
|
|
46
49
|
end
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
remaining.unshift "force-build"
|
|
50
|
-
else
|
|
51
|
-
remaining.unshift "build"
|
|
52
|
-
end
|
|
51
|
+
remaining.unshift mode
|
|
53
52
|
ARGV.clear
|
|
54
53
|
ARGV.concat(remaining)
|
|
55
54
|
load File.expand_path('autoproj', File.dirname(__FILE__))
|
data/bin/autoproj
CHANGED
|
@@ -52,7 +52,16 @@ Autoproj::OSDependencies.autodetect_ruby
|
|
|
52
52
|
prefix = File.expand_path(__FILE__)
|
|
53
53
|
if File.file?("#{prefix}-#{ARGV.first}")
|
|
54
54
|
binary = "#{prefix}-#{ARGV.shift}"
|
|
55
|
-
|
|
55
|
+
# RubyGems have a BIG performance problem when $LOADED_PATH starts to be
|
|
56
|
+
# big.
|
|
57
|
+
#
|
|
58
|
+
# So, if the sub-script is Ruby-based, just load it and exit
|
|
59
|
+
if File.readlines(binary).first =~ /ruby/
|
|
60
|
+
load binary
|
|
61
|
+
exit
|
|
62
|
+
else
|
|
63
|
+
exec(binary, *ARGV)
|
|
64
|
+
end
|
|
56
65
|
end
|
|
57
66
|
|
|
58
67
|
# Find the autoproj root dir
|
|
@@ -97,6 +106,14 @@ EOTEXT
|
|
|
97
106
|
if selected_packages.empty?
|
|
98
107
|
Autoproj::CmdLine.update_myself
|
|
99
108
|
Autoproj::CmdLine.update_configuration
|
|
109
|
+
else
|
|
110
|
+
begin
|
|
111
|
+
old_value = Autobuild.do_update
|
|
112
|
+
Autobuild.do_update = false
|
|
113
|
+
Autoproj::CmdLine.update_configuration
|
|
114
|
+
ensure
|
|
115
|
+
Autobuild.do_update = old_value
|
|
116
|
+
end
|
|
100
117
|
end
|
|
101
118
|
Autoproj::CmdLine.load_configuration
|
|
102
119
|
manifest = Autoproj.manifest
|
data/bin/autoproj_bootstrap
CHANGED
|
@@ -686,7 +686,12 @@ fi
|
|
|
686
686
|
gems = gems.dup
|
|
687
687
|
gems.delete_if do |name, version|
|
|
688
688
|
version_requirements = Gem::Requirement.new(version || '>= 0')
|
|
689
|
-
installed =
|
|
689
|
+
installed =
|
|
690
|
+
if Gem.source_index.respond_to?(:find_by_name)
|
|
691
|
+
Gem.source_index.find_by_name(name, version_requirements)
|
|
692
|
+
else
|
|
693
|
+
Gem.source_index.find_name(name, version_requirements)
|
|
694
|
+
end
|
|
690
695
|
if !installed.empty? && Autobuild.do_update
|
|
691
696
|
# Look if we can update the package ...
|
|
692
697
|
dep = Gem::Dependency.new(name, version_requirements)
|
|
@@ -1370,37 +1375,22 @@ module Autoproj
|
|
|
1370
1375
|
File.join(Autoproj.root_dir, "env.sh")
|
|
1371
1376
|
end
|
|
1372
1377
|
|
|
1373
|
-
File.
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
if
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
end
|
|
1378
|
+
shell_dir = File.expand_path(File.join("..", "..", "shell"), File.dirname(__FILE__))
|
|
1379
|
+
if Autoproj.shell_helpers? && shell = ENV['SHELL']
|
|
1380
|
+
shell_kind = File.basename(shell)
|
|
1381
|
+
if shell_kind =~ /^\w+$/
|
|
1382
|
+
shell_file = File.join(shell_dir, "autoproj_#{shell_kind}")
|
|
1383
|
+
if File.exists?(shell_file)
|
|
1384
|
+
Autoproj.progress
|
|
1385
|
+
Autoproj.progress "autodetected the shell to be #{shell_kind}, sourcing autoproj shell helpers"
|
|
1386
|
+
Autoproj.progress "add \"Autoproj.shell_helpers = false\" in autoproj/init.rb to disable"
|
|
1387
|
+
Autobuild.env_source_file(shell_file)
|
|
1384
1388
|
end
|
|
1385
|
-
io.puts shell_line
|
|
1386
|
-
end
|
|
1387
|
-
variables.each do |var|
|
|
1388
|
-
io.puts "export #{var}"
|
|
1389
1389
|
end
|
|
1390
|
+
end
|
|
1390
1391
|
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
shell_kind = File.basename(shell)
|
|
1394
|
-
if shell_kind =~ /^\w+$/
|
|
1395
|
-
shell_file = File.join(shell_dir, "autoproj_#{shell_kind}")
|
|
1396
|
-
if File.exists?(shell_file)
|
|
1397
|
-
Autoproj.progress
|
|
1398
|
-
Autoproj.progress "autodetected the shell to be #{shell_kind}, sourcing autoproj shell helpers"
|
|
1399
|
-
Autoproj.progress "add \"Autoproj.shell_helpers = false\" in autoproj/init.rb to disable"
|
|
1400
|
-
io.puts "source \"#{shell_file}\""
|
|
1401
|
-
end
|
|
1402
|
-
end
|
|
1403
|
-
end
|
|
1392
|
+
File.open(filename, "w") do |io|
|
|
1393
|
+
Autobuild.export_env_sh(io)
|
|
1404
1394
|
end
|
|
1405
1395
|
end
|
|
1406
1396
|
|
data/lib/autoproj/cmdline.rb
CHANGED
|
@@ -493,7 +493,7 @@ module Autoproj
|
|
|
493
493
|
sel = File.expand_path(sel)
|
|
494
494
|
relative_to_root = Pathname.new(sel).relative_path_from(Pathname.new(Autoproj.root_dir))
|
|
495
495
|
pkg = Autoproj.in_package_set(manifest.local_package_set, manifest.file) do
|
|
496
|
-
send(handler, relative_to_root)
|
|
496
|
+
send(handler, relative_to_root.to_s)
|
|
497
497
|
end
|
|
498
498
|
setup_package_directories(pkg)
|
|
499
499
|
selected_packages << pkg.name
|
|
@@ -1660,9 +1660,7 @@ export PATH=$GEM_HOME/bin:$PATH
|
|
|
1660
1660
|
|
|
1661
1661
|
Autoproj::CmdLine.update_os_dependencies = false
|
|
1662
1662
|
Autoproj::CmdLine.initialize
|
|
1663
|
-
|
|
1664
|
-
Autoproj::CmdLine.update_configuration
|
|
1665
|
-
end
|
|
1663
|
+
Autoproj::CmdLine.update_configuration
|
|
1666
1664
|
Autoproj::CmdLine.load_configuration
|
|
1667
1665
|
Autoproj::CmdLine.setup_all_package_directories
|
|
1668
1666
|
Autoproj::CmdLine.finalize_package_setup
|
data/lib/autoproj/manifest.rb
CHANGED
|
@@ -119,6 +119,12 @@ module Autoproj
|
|
|
119
119
|
Autobuild.env_add_path(name, *value)
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
+
# Requests that autoproj source the given shell script in its own env.sh
|
|
123
|
+
# script
|
|
124
|
+
def self.env_source_file(file)
|
|
125
|
+
Autobuild.env_source_file(file)
|
|
126
|
+
end
|
|
127
|
+
|
|
122
128
|
# Representation of a VCS definition contained in a source.yml file or in
|
|
123
129
|
# autoproj/manifest
|
|
124
130
|
class VCSDefinition
|
|
@@ -495,6 +501,12 @@ module Autoproj
|
|
|
495
501
|
# Create a PackageSet instance from its description as found in YAML
|
|
496
502
|
# configuration files
|
|
497
503
|
def self.from_spec(manifest, raw_spec, load_description)
|
|
504
|
+
if raw_spec.respond_to?(:to_str)
|
|
505
|
+
local_path = File.join(Autoproj.config_dir, raw_spec)
|
|
506
|
+
if File.directory?(local_path)
|
|
507
|
+
raw_spec = { :type => 'local', :url => local_path }
|
|
508
|
+
end
|
|
509
|
+
end
|
|
498
510
|
spec = VCSDefinition.vcs_definition_to_hash(raw_spec)
|
|
499
511
|
options, vcs_spec = Kernel.filter_options spec, :auto_imports => true
|
|
500
512
|
|
|
@@ -1782,17 +1794,21 @@ module Autoproj
|
|
|
1782
1794
|
def load_package_manifest(pkg_name)
|
|
1783
1795
|
pkg = packages.values.
|
|
1784
1796
|
find { |pkg| pkg.autobuild.name == pkg_name }
|
|
1785
|
-
package,
|
|
1797
|
+
package, package_set, file = pkg.autobuild, pkg.package_set, pkg.file
|
|
1786
1798
|
|
|
1787
1799
|
if !pkg_name
|
|
1788
1800
|
raise ArgumentError, "package #{pkg_name} is not defined"
|
|
1789
1801
|
end
|
|
1790
1802
|
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1803
|
+
manifest_paths =
|
|
1804
|
+
[File.join(package_set.local_dir, "manifests", package.name + ".xml"), File.join(package.srcdir, "manifest.xml")]
|
|
1805
|
+
manifest_path = manifest_paths.find do |path|
|
|
1806
|
+
File.directory?(File.dirname(path)) &&
|
|
1807
|
+
File.file?(path)
|
|
1808
|
+
end
|
|
1809
|
+
|
|
1810
|
+
if !manifest_path
|
|
1811
|
+
Autoproj.warn "#{package.name} from #{package_set.name} does not have a manifest"
|
|
1796
1812
|
return
|
|
1797
1813
|
end
|
|
1798
1814
|
|
|
@@ -1809,10 +1825,10 @@ module Autoproj
|
|
|
1809
1825
|
end
|
|
1810
1826
|
rescue Autobuild::ConfigException => e
|
|
1811
1827
|
raise ConfigError.new(manifest_path),
|
|
1812
|
-
"manifest #{manifest_path} of #{package.name} from #{
|
|
1828
|
+
"manifest #{manifest_path} of #{package.name} from #{package_set.name} lists '#{name}' as dependency, which is listed in the layout of #{file} but has no autobuild definition", e.backtrace
|
|
1813
1829
|
rescue ConfigError => e
|
|
1814
1830
|
raise ConfigError.new(manifest_path),
|
|
1815
|
-
"manifest #{manifest_path} of #{package.name} from #{
|
|
1831
|
+
"manifest #{manifest_path} of #{package.name} from #{package_set.name} lists '#{name}' as dependency, but it is neither a normal package nor an osdeps package. osdeps reports: #{e.message}", e.backtrace
|
|
1816
1832
|
end
|
|
1817
1833
|
end
|
|
1818
1834
|
end
|
data/lib/autoproj/osdeps.rb
CHANGED
|
@@ -587,7 +587,12 @@ fi
|
|
|
587
587
|
gems = gems.dup
|
|
588
588
|
gems.delete_if do |name, version|
|
|
589
589
|
version_requirements = Gem::Requirement.new(version || '>= 0')
|
|
590
|
-
installed =
|
|
590
|
+
installed =
|
|
591
|
+
if Gem.source_index.respond_to?(:find_by_name)
|
|
592
|
+
Gem.source_index.find_by_name(name, version_requirements)
|
|
593
|
+
else
|
|
594
|
+
Gem.source_index.find_name(name, version_requirements)
|
|
595
|
+
end
|
|
591
596
|
if !installed.empty? && Autobuild.do_update
|
|
592
597
|
# Look if we can update the package ...
|
|
593
598
|
dep = Gem::Dependency.new(name, version_requirements)
|
data/lib/autoproj/query.rb
CHANGED
|
@@ -1,4 +1,32 @@
|
|
|
1
1
|
module Autoproj
|
|
2
|
+
# Match class for the query system.
|
|
3
|
+
#
|
|
4
|
+
# This class allows to create a query object based on a textual
|
|
5
|
+
# representation, and then match packages using this query object.
|
|
6
|
+
#
|
|
7
|
+
# The queries are of the form
|
|
8
|
+
#
|
|
9
|
+
# FIELD=VALUE:FIELD~VALUE:FIELD=VALUE
|
|
10
|
+
#
|
|
11
|
+
# The F=V form requires an exact match while F~V allows partial
|
|
12
|
+
# matches. The different matches are combined with AND (i.e. only packages
|
|
13
|
+
# matching all criterias will be returned)
|
|
14
|
+
#
|
|
15
|
+
# The following fields are allowed:
|
|
16
|
+
# * autobuild.name: the package name
|
|
17
|
+
# * autobuild.srcdir: the package source directory
|
|
18
|
+
# * autobuild.class.name: the package class
|
|
19
|
+
# * vcs.type: the VCS type (as used in the source.yml files)
|
|
20
|
+
# * vcs.url: the URL from the VCS. The exact semantic of it depends on the
|
|
21
|
+
# VCS type
|
|
22
|
+
# * package_set.name: the name of the package set that defines the package
|
|
23
|
+
#
|
|
24
|
+
# Some fields have shortcuts:
|
|
25
|
+
# * 'name' can be used instead of 'autobuild.name'
|
|
26
|
+
# * 'class' can be used instead of 'autobuild.class.name'
|
|
27
|
+
# * 'vcs' can be used instead of 'vcs.url'
|
|
28
|
+
# * 'package_set' can be used instead of 'package_set.name'
|
|
29
|
+
#
|
|
2
30
|
class Query
|
|
3
31
|
ALLOWED_FIELDS = [
|
|
4
32
|
'autobuild.name',
|
|
@@ -9,8 +37,8 @@ module Autoproj
|
|
|
9
37
|
'package_set.name'
|
|
10
38
|
]
|
|
11
39
|
DEFAULT_FIELDS = {
|
|
40
|
+
'name' => 'autobuild.name',
|
|
12
41
|
'class' => 'autobuild.class.name',
|
|
13
|
-
'autobuild' => 'autobuild.name',
|
|
14
42
|
'vcs' => 'vcs.url',
|
|
15
43
|
'package_set' => 'package_set.name'
|
|
16
44
|
}
|
|
@@ -24,11 +52,13 @@ module Autoproj
|
|
|
24
52
|
attr_reader :fields
|
|
25
53
|
attr_reader :value
|
|
26
54
|
attr_predicate :use_dir_prefix?
|
|
55
|
+
attr_predicate :partial?
|
|
27
56
|
|
|
28
|
-
def initialize(fields, value)
|
|
57
|
+
def initialize(fields, value, partial)
|
|
29
58
|
@fields = fields
|
|
30
59
|
@value = value
|
|
31
60
|
@value_rx = Regexp.new(Regexp.quote(value), true)
|
|
61
|
+
@partial = partial
|
|
32
62
|
|
|
33
63
|
directories = value.split('/')
|
|
34
64
|
if !directories.empty?
|
|
@@ -47,13 +77,41 @@ module Autoproj
|
|
|
47
77
|
end
|
|
48
78
|
end
|
|
49
79
|
|
|
80
|
+
# Checks if +pkg+ matches the query
|
|
81
|
+
#
|
|
82
|
+
# Returns false if +pkg+ does not match the query and a true value
|
|
83
|
+
# otherwise.
|
|
84
|
+
#
|
|
85
|
+
# If the package matches, the returned value can be one of:
|
|
86
|
+
#
|
|
87
|
+
# EXACT:: this is an exact match
|
|
88
|
+
# PARTIAL::
|
|
89
|
+
# the expected value can be found in the package field. The
|
|
90
|
+
# match is done in a case-insensitive way
|
|
91
|
+
# DIR_PREFIX_STRONG::
|
|
92
|
+
# if the expected value contains '/' (directory
|
|
93
|
+
# marker), the package matches the following regular
|
|
94
|
+
# expression: /el\w+/el2\w+/el3$
|
|
95
|
+
# DIR_PREFIX_WEAK::
|
|
96
|
+
# if the expected value contains '/' (directory
|
|
97
|
+
# marker), the package matches the following regular
|
|
98
|
+
# expression: /el\w+/el2\w+/el3\w+
|
|
99
|
+
#
|
|
100
|
+
# If partial? is not set (i.e. if FIELD=VALUE was used), then only EXACT
|
|
101
|
+
# or false can be returned.
|
|
50
102
|
def match(pkg)
|
|
51
103
|
pkg_value = fields.inject(pkg) { |v, field_name| v.send(field_name) }
|
|
52
104
|
pkg_value = pkg_value.to_s
|
|
53
105
|
|
|
54
106
|
if pkg_value == value
|
|
55
107
|
return EXACT
|
|
56
|
-
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
if !partial?
|
|
111
|
+
return
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
if pkg_value =~ @value_rx
|
|
57
115
|
return PARTIAL
|
|
58
116
|
end
|
|
59
117
|
|
|
@@ -67,8 +125,14 @@ module Autoproj
|
|
|
67
125
|
end
|
|
68
126
|
end
|
|
69
127
|
|
|
128
|
+
# Parse a single field in a query (i.e. a FIELD[=~]VALUE string)
|
|
70
129
|
def self.parse(str)
|
|
71
130
|
field, value = str.split('=')
|
|
131
|
+
if !value
|
|
132
|
+
partial = true
|
|
133
|
+
field, value = str.split('~')
|
|
134
|
+
end
|
|
135
|
+
|
|
72
136
|
if DEFAULT_FIELDS[field]
|
|
73
137
|
field = DEFAULT_FIELDS[field]
|
|
74
138
|
end
|
|
@@ -79,15 +143,16 @@ module Autoproj
|
|
|
79
143
|
end
|
|
80
144
|
|
|
81
145
|
fields = field.split('.')
|
|
82
|
-
new(fields, value)
|
|
146
|
+
new(fields, value, partial)
|
|
83
147
|
end
|
|
84
148
|
|
|
149
|
+
# Parse a complete query
|
|
85
150
|
def self.parse_query(query)
|
|
86
151
|
query = query.split(':')
|
|
87
152
|
query = query.map do |str|
|
|
88
|
-
if str !~
|
|
89
|
-
match_name = Query.parse("autobuild.name
|
|
90
|
-
match_dir = Query.parse("autobuild.srcdir
|
|
153
|
+
if str !~ /[=~]/
|
|
154
|
+
match_name = Query.parse("autobuild.name~#{str}")
|
|
155
|
+
match_dir = Query.parse("autobuild.srcdir~#{str}")
|
|
91
156
|
Or.new([match_name, match_dir])
|
|
92
157
|
else
|
|
93
158
|
Query.parse(str)
|
|
@@ -95,29 +160,31 @@ module Autoproj
|
|
|
95
160
|
end
|
|
96
161
|
And.new(query)
|
|
97
162
|
end
|
|
98
|
-
end
|
|
99
163
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
164
|
+
# Match object that combines multiple matches using a logical OR
|
|
165
|
+
class Or
|
|
166
|
+
def initialize(submatches)
|
|
167
|
+
@submatches = submatches
|
|
168
|
+
end
|
|
169
|
+
def match(pkg)
|
|
170
|
+
@submatches.map { |m| m.match(pkg) }.compact.max
|
|
171
|
+
end
|
|
106
172
|
end
|
|
107
|
-
end
|
|
108
173
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
p
|
|
117
|
-
|
|
174
|
+
# Match object that combines multiple matches using a logical AND
|
|
175
|
+
class And
|
|
176
|
+
def initialize(submatches)
|
|
177
|
+
@submatches = submatches
|
|
178
|
+
end
|
|
179
|
+
def match(pkg)
|
|
180
|
+
matches = @submatches.map do |m|
|
|
181
|
+
if p = m.match(pkg)
|
|
182
|
+
p
|
|
183
|
+
else return
|
|
184
|
+
end
|
|
118
185
|
end
|
|
186
|
+
matches.min
|
|
119
187
|
end
|
|
120
|
-
matches.min
|
|
121
188
|
end
|
|
122
189
|
end
|
|
123
190
|
end
|
data/lib/autoproj/system.rb
CHANGED
|
@@ -126,37 +126,22 @@ module Autoproj
|
|
|
126
126
|
File.join(Autoproj.root_dir, "env.sh")
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
File.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
end
|
|
129
|
+
shell_dir = File.expand_path(File.join("..", "..", "shell"), File.dirname(__FILE__))
|
|
130
|
+
if Autoproj.shell_helpers? && shell = ENV['SHELL']
|
|
131
|
+
shell_kind = File.basename(shell)
|
|
132
|
+
if shell_kind =~ /^\w+$/
|
|
133
|
+
shell_file = File.join(shell_dir, "autoproj_#{shell_kind}")
|
|
134
|
+
if File.exists?(shell_file)
|
|
135
|
+
Autoproj.progress
|
|
136
|
+
Autoproj.progress "autodetected the shell to be #{shell_kind}, sourcing autoproj shell helpers"
|
|
137
|
+
Autoproj.progress "add \"Autoproj.shell_helpers = false\" in autoproj/init.rb to disable"
|
|
138
|
+
Autobuild.env_source_file(shell_file)
|
|
140
139
|
end
|
|
141
|
-
io.puts shell_line
|
|
142
|
-
end
|
|
143
|
-
variables.each do |var|
|
|
144
|
-
io.puts "export #{var}"
|
|
145
140
|
end
|
|
141
|
+
end
|
|
146
142
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
shell_kind = File.basename(shell)
|
|
150
|
-
if shell_kind =~ /^\w+$/
|
|
151
|
-
shell_file = File.join(shell_dir, "autoproj_#{shell_kind}")
|
|
152
|
-
if File.exists?(shell_file)
|
|
153
|
-
Autoproj.progress
|
|
154
|
-
Autoproj.progress "autodetected the shell to be #{shell_kind}, sourcing autoproj shell helpers"
|
|
155
|
-
Autoproj.progress "add \"Autoproj.shell_helpers = false\" in autoproj/init.rb to disable"
|
|
156
|
-
io.puts "source \"#{shell_file}\""
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
end
|
|
143
|
+
File.open(filename, "w") do |io|
|
|
144
|
+
Autobuild.export_env_sh(io)
|
|
160
145
|
end
|
|
161
146
|
end
|
|
162
147
|
|
data/lib/autoproj/version.rb
CHANGED
data/shell/autoproj_bash
CHANGED
data/shell/autoproj_zsh
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: autoproj
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
5
|
-
prerelease:
|
|
4
|
+
hash: 15424055
|
|
5
|
+
prerelease: 7
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 7
|
|
9
|
-
-
|
|
10
|
-
|
|
9
|
+
- 14
|
|
10
|
+
- rc
|
|
11
|
+
- 1
|
|
12
|
+
version: 1.7.14.rc1
|
|
11
13
|
platform: ruby
|
|
12
14
|
authors:
|
|
13
15
|
- Sylvain Joyeux
|
|
@@ -15,7 +17,7 @@ autorequire:
|
|
|
15
17
|
bindir: bin
|
|
16
18
|
cert_chain: []
|
|
17
19
|
|
|
18
|
-
date: 2011-
|
|
20
|
+
date: 2011-10-11 00:00:00 Z
|
|
19
21
|
dependencies:
|
|
20
22
|
- !ruby/object:Gem::Dependency
|
|
21
23
|
name: autobuild
|
|
@@ -135,14 +137,13 @@ dependencies:
|
|
|
135
137
|
requirement: &id008 !ruby/object:Gem::Requirement
|
|
136
138
|
none: false
|
|
137
139
|
requirements:
|
|
138
|
-
- -
|
|
140
|
+
- - ~>
|
|
139
141
|
- !ruby/object:Gem::Version
|
|
140
|
-
hash:
|
|
142
|
+
hash: 27
|
|
141
143
|
segments:
|
|
142
144
|
- 2
|
|
143
|
-
-
|
|
144
|
-
|
|
145
|
-
version: 2.8.0
|
|
145
|
+
- 12
|
|
146
|
+
version: "2.12"
|
|
146
147
|
type: :development
|
|
147
148
|
version_requirements: *id008
|
|
148
149
|
description: |-
|
|
@@ -226,6 +227,7 @@ files:
|
|
|
226
227
|
- test/data/test_manifest/autoproj/manifest
|
|
227
228
|
- test/test_debian.rb
|
|
228
229
|
- test/test_manifest.rb
|
|
230
|
+
- .gemtest
|
|
229
231
|
homepage: http://doudou.github.com/autoproj
|
|
230
232
|
licenses: []
|
|
231
233
|
|
|
@@ -247,16 +249,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
247
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
250
|
none: false
|
|
249
251
|
requirements:
|
|
250
|
-
- - "
|
|
252
|
+
- - ">"
|
|
251
253
|
- !ruby/object:Gem::Version
|
|
252
|
-
hash:
|
|
254
|
+
hash: 25
|
|
253
255
|
segments:
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
+
- 1
|
|
257
|
+
- 3
|
|
258
|
+
- 1
|
|
259
|
+
version: 1.3.1
|
|
256
260
|
requirements: []
|
|
257
261
|
|
|
258
262
|
rubyforge_project: autobuild
|
|
259
|
-
rubygems_version: 1.
|
|
263
|
+
rubygems_version: 1.8.10
|
|
260
264
|
signing_key:
|
|
261
265
|
specification_version: 3
|
|
262
266
|
summary: Easy installation and management of robotics software
|