lib/conjur/conjurize/script.rb in conjur-cli-5.1.2 vs lib/conjur/conjurize/script.rb in conjur-cli-5.2.0
- old
+ new
@@ -5,16 +5,33 @@
# generates a shell script to conjurize a host
class Script
COOKBOOK_RELEASES_URL =
"https://api.github.com/repos/conjur-cookbooks/conjur/releases".freeze
+ def self.tarballs_of_releases releases
+ releases.map do |release|
+ assets = release["assets"].select do |asset|
+ asset["name"] =~ /conjur-v\d.\d.\d.tar.gz/
+ end
+
+ [release["name"], assets.map { |asset| asset["browser_download_url"] }]
+ end
+ end
+
def self.latest_conjur_cookbook_release
json = JSON.parse open(COOKBOOK_RELEASES_URL).read
- tarballs = json[0]["assets"].select do |asset|
- asset["name"] =~ /conjur-v\d.\d.\d.tar.gz/
+ tarballs = tarballs_of_releases json
+
+ latest = tarballs.first
+ selected = tarballs.find { |release| !release[1].empty? }
+
+ if selected != latest
+ warn "WARNING: Latest cookbook release (#{latest.first}) does not "\
+ "contain a valid package. Falling back to #{selected.first}."
end
- tarballs.first["browser_download_url"]
+
+ selected[1].first
end
HEADER = <<-HEADER.freeze
#!/bin/sh
set -e
@@ -79,10 +96,10 @@
def chef_script
@chef_script ||= [
("curl -L https://www.opscode.com/chef/install.sh | " + sudo["bash"] \
if install_chef?),
- (sudo["#{chef_executable} -r #{conjur_cookbook_url} " \
+ (sudo["#{chef_executable} --recipe-url #{conjur_cookbook_url} " \
"-o #{conjur_run_list}"] if run_chef?)
].join "\n"
end
def self.rc configuration