Skip to content

Commit 0a80230

Browse files
committed
Make the script fail with an exit code
If there are unmet dependencies or deprecated modules the script and rake task should fail. This implements an exit code. 1 means unmet dependencies, 2 means deprecated modules. Since they're ORed 3 means both unmet dependencies and deprecated modules. If there's another condition it should use code 4.
1 parent b829907 commit 0a80230

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ require 'metadata_json_deps'
5858
desc 'Run metadata-json-deps'
5959
task :metadata_deps do
6060
files = FileList['modules/*/metadata.json']
61-
MetadataJsonDeps::run(files)
61+
abort if MetadataJsonDeps::run(files)
6262
end
6363
```
6464

bin/metadata-json-deps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ OptionParser.new do |opts|
88
opts.on("-v", "--[no-]verbose", "Run verbosely")
99
end.parse!(into: options)
1010

11-
MetadataJsonDeps.run(ARGV, options[:verbose])
11+
exit(MetadataJsonDeps.run(ARGV, options[:verbose]))

lib/metadata_json_deps.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ def self.bump_dependency(filename, module_name, upper_bound)
8080
def self.run(filenames, verbose = false)
8181
forge = ForgeVersions.new
8282

83+
exit_code = 0
84+
8385
filenames.each do |filename|
8486
puts "Checking #{filename}"
8587
metadata = PuppetMetadata.read(filename)
@@ -88,6 +90,7 @@ def self.run(filenames, verbose = false)
8890
mod = forge.get_module(dependency)
8991

9092
if mod.deprecated_at
93+
exit_code |= 2
9194
if mod.superseded_by
9295
puts " #{dependency} was superseded by #{mod.superseded_by[:slug]}"
9396
elsif mod.deprecated_for
@@ -103,10 +106,13 @@ def self.run(filenames, verbose = false)
103106
puts " #{dependency} (#{constraint}) matches #{current}"
104107
end
105108
else
109+
exit_code |= 1
106110
puts " #{dependency} (#{constraint}) doesn't match #{current}"
107111
end
108112
end
109113
end
114+
115+
exit_code
110116
end
111117
rescue Interrupt
112118
end

0 commit comments

Comments
 (0)