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