autoproj 1.7.14.rc4 → 1.7.14.rc5
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/bin/autoproj +16 -2
- data/bin/autoproj_bootstrap +2 -2
- data/lib/autoproj/cmdline.rb +17 -2
- data/lib/autoproj/manifest.rb +1 -1
- data/lib/autoproj/osdeps.rb +2 -2
- data/lib/autoproj/version.rb +1 -1
- metadata +3 -3
data/bin/autoproj
CHANGED
@@ -183,8 +183,22 @@ EOTEXT
|
|
183
183
|
|
184
184
|
if Autoproj::CmdLine.only_status?
|
185
185
|
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
186
|
-
Autoproj::CmdLine.status(all_enabled_packages)
|
187
|
-
|
186
|
+
result = Autoproj::CmdLine.status(all_enabled_packages)
|
187
|
+
if Autoproj::CmdLine.status_exit_code?
|
188
|
+
code = 0
|
189
|
+
if result.uncommitted
|
190
|
+
code |= 1
|
191
|
+
end
|
192
|
+
if result.local
|
193
|
+
code |= 2
|
194
|
+
end
|
195
|
+
if result.remote
|
196
|
+
code |= 4
|
197
|
+
end
|
198
|
+
exit(code)
|
199
|
+
else
|
200
|
+
exit(0)
|
201
|
+
end
|
188
202
|
elsif Autoproj::CmdLine.check?
|
189
203
|
all_enabled_packages = Autoproj::CmdLine.import_packages(selected_packages)
|
190
204
|
Autoproj::CmdLine.check(all_enabled_packages)
|
data/bin/autoproj_bootstrap
CHANGED
@@ -616,7 +616,7 @@ fi
|
|
616
616
|
#
|
617
617
|
# Raises ConfigError if an error exists in the osdeps files, and returns
|
618
618
|
# empty sets if the package can't be found
|
619
|
-
def partition_packages(package_set
|
619
|
+
def partition_packages(package_set)
|
620
620
|
package_set = package_set.
|
621
621
|
map { |name| OSDependencies.aliases[name] || name }.
|
622
622
|
to_set
|
@@ -1003,7 +1003,7 @@ So, what do you want ? (all, ruby, os or none)
|
|
1003
1003
|
packages -= installed_packages
|
1004
1004
|
return if packages.empty?
|
1005
1005
|
|
1006
|
-
osdeps, gems = partition_packages(packages
|
1006
|
+
osdeps, gems = partition_packages(packages)
|
1007
1007
|
if handled_os
|
1008
1008
|
os_names, _ = OSDependencies.operating_system
|
1009
1009
|
os_packages = resolve_os_dependencies(osdeps)
|
data/lib/autoproj/cmdline.rb
CHANGED
@@ -745,11 +745,15 @@ module Autoproj
|
|
745
745
|
else true
|
746
746
|
end
|
747
747
|
end
|
748
|
+
def self.status_exit_code?
|
749
|
+
@status_exit_code
|
750
|
+
end
|
748
751
|
def self.list_newest?; @list_newest end
|
749
752
|
def self.parse_arguments(args, with_mode = true)
|
750
753
|
@only_status = false
|
751
754
|
@only_local = false
|
752
755
|
@show_osdeps = false
|
756
|
+
@status_exit_code = false
|
753
757
|
@revshow_osdeps = false
|
754
758
|
@osdeps_filter_uptodate = true
|
755
759
|
@osdeps_forced_mode = nil
|
@@ -906,6 +910,9 @@ where 'mode' is one of:
|
|
906
910
|
opts.on("--local", "for status, do not access the network") do
|
907
911
|
@only_local = true
|
908
912
|
end
|
913
|
+
opts.on('--exit-code', 'in status mode, exit with a code that reflects the status of the installation (see documentation for details)') do
|
914
|
+
@status_exit_code = true
|
915
|
+
end
|
909
916
|
opts.on('--randomize-layout', 'in build and full-build, generate a random layout') do
|
910
917
|
@randomize_layout = true
|
911
918
|
Autoproj.change_option('randomize_layout', true)
|
@@ -1103,8 +1110,10 @@ where 'mode' is one of:
|
|
1103
1110
|
nil
|
1104
1111
|
end
|
1105
1112
|
|
1113
|
+
StatusResult = Struct.new :uncommitted, :local, :remote
|
1106
1114
|
def self.display_status(packages)
|
1107
1115
|
last_was_in_sync = false
|
1116
|
+
result = StatusResult.new
|
1108
1117
|
|
1109
1118
|
packages.each do |pkg|
|
1110
1119
|
lines = []
|
@@ -1125,6 +1134,7 @@ where 'mode' is one of:
|
|
1125
1134
|
status = pkg.importer.status(pkg,@only_local)
|
1126
1135
|
if status.uncommitted_code
|
1127
1136
|
lines << Autoproj.color(" contains uncommitted modifications", :red)
|
1137
|
+
result.uncommitted = true
|
1128
1138
|
end
|
1129
1139
|
|
1130
1140
|
case status.status
|
@@ -1141,16 +1151,20 @@ where 'mode' is one of:
|
|
1141
1151
|
lines << Autoproj.color(" local and remote are in sync", :green)
|
1142
1152
|
end
|
1143
1153
|
when Autobuild::Importer::Status::ADVANCED
|
1154
|
+
result.local = true
|
1144
1155
|
lines << Autoproj.color(" local contains #{status.local_commits.size} commit that remote does not have:", :magenta)
|
1145
1156
|
status.local_commits.each do |line|
|
1146
1157
|
lines << Autoproj.color(" #{line}", :magenta)
|
1147
1158
|
end
|
1148
1159
|
when Autobuild::Importer::Status::SIMPLE_UPDATE
|
1160
|
+
result.remote = true
|
1149
1161
|
lines << Autoproj.color(" remote contains #{status.remote_commits.size} commit that local does not have:", :magenta)
|
1150
1162
|
status.remote_commits.each do |line|
|
1151
1163
|
lines << Autoproj.color(" #{line}", :magenta)
|
1152
1164
|
end
|
1153
1165
|
when Autobuild::Importer::Status::NEEDS_MERGE
|
1166
|
+
result.local = true
|
1167
|
+
result.remote = true
|
1154
1168
|
lines << Autoproj.color(" local and remote have diverged with respectively #{status.local_commits.size} and #{status.remote_commits.size} commits each", :magenta)
|
1155
1169
|
lines << " -- local commits --"
|
1156
1170
|
status.local_commits.each do |line|
|
@@ -1180,6 +1194,7 @@ where 'mode' is one of:
|
|
1180
1194
|
if last_was_in_sync
|
1181
1195
|
Autoproj.progress(": local and remote are in sync", :green)
|
1182
1196
|
end
|
1197
|
+
return result
|
1183
1198
|
end
|
1184
1199
|
|
1185
1200
|
def self.status(packages)
|
@@ -1557,7 +1572,7 @@ export PATH=$GEM_HOME/bin:$PATH
|
|
1557
1572
|
|
1558
1573
|
ospkg_to_pkg.each do |pkg_osdep, pkgs|
|
1559
1574
|
osdeps, gems = Autoproj.osdeps.
|
1560
|
-
partition_packages([pkg_osdep]
|
1575
|
+
partition_packages([pkg_osdep])
|
1561
1576
|
|
1562
1577
|
gems.each do |gem_name|
|
1563
1578
|
mapping[gem_name.join(" ")][1] = true
|
@@ -1620,7 +1635,7 @@ export PATH=$GEM_HOME/bin:$PATH
|
|
1620
1635
|
end
|
1621
1636
|
|
1622
1637
|
osdeps, gems = Autoproj.osdeps.
|
1623
|
-
partition_packages(pkg_osdeps
|
1638
|
+
partition_packages(pkg_osdeps)
|
1624
1639
|
|
1625
1640
|
puts " #{pkg_name}:"
|
1626
1641
|
if !gems.empty?
|
data/lib/autoproj/manifest.rb
CHANGED
@@ -1687,7 +1687,7 @@ module Autoproj
|
|
1687
1687
|
# a proper error message.
|
1688
1688
|
if !available_as_source
|
1689
1689
|
begin
|
1690
|
-
osdeps, gems = Autoproj.osdeps.partition_packages([name].to_set
|
1690
|
+
osdeps, gems = Autoproj.osdeps.partition_packages([name].to_set)
|
1691
1691
|
Autoproj.osdeps.resolve_os_dependencies(osdeps)
|
1692
1692
|
rescue Autoproj::ConfigError => e
|
1693
1693
|
if osdeps_availability != Autoproj::OSDependencies::NO_PACKAGE && !Autoproj.osdeps.installs_os_packages?
|
data/lib/autoproj/osdeps.rb
CHANGED
@@ -517,7 +517,7 @@ fi
|
|
517
517
|
#
|
518
518
|
# Raises ConfigError if an error exists in the osdeps files, and returns
|
519
519
|
# empty sets if the package can't be found
|
520
|
-
def partition_packages(package_set
|
520
|
+
def partition_packages(package_set)
|
521
521
|
package_set = package_set.
|
522
522
|
map { |name| OSDependencies.aliases[name] || name }.
|
523
523
|
to_set
|
@@ -904,7 +904,7 @@ So, what do you want ? (all, ruby, os or none)
|
|
904
904
|
packages -= installed_packages
|
905
905
|
return if packages.empty?
|
906
906
|
|
907
|
-
osdeps, gems = partition_packages(packages
|
907
|
+
osdeps, gems = partition_packages(packages)
|
908
908
|
if handled_os
|
909
909
|
os_names, _ = OSDependencies.operating_system
|
910
910
|
os_packages = resolve_os_dependencies(osdeps)
|
data/lib/autoproj/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoproj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15424063
|
5
5
|
prerelease: 7
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 7
|
9
9
|
- 14
|
10
10
|
- rc
|
11
|
-
-
|
12
|
-
version: 1.7.14.
|
11
|
+
- 5
|
12
|
+
version: 1.7.14.rc5
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Sylvain Joyeux
|