Skip to content

Instantly share code, notes, and snippets.

@stevehodgkiss
Created November 7, 2018 03:26
Show Gist options
  • Save stevehodgkiss/8959d30c37723d773666321941e313af to your computer and use it in GitHub Desktop.
Save stevehodgkiss/8959d30c37723d773666321941e313af to your computer and use it in GitHub Desktop.
Displays Heroku config vars as JSON, to make importing them into EJSON files easier
require 'json'
require 'optparse'
options = {}
ARGV << '--help' if ARGV.empty?
OptionParser.new do |opts|
opts.on('--heroku-app HEROKU_APP', String, 'Heroku app name') do |o|
options[:heroku_app] = o
end
opts.on('--config-vars CONFIG_VARS', Array, 'comma separated list of Heroku config vars') do |o|
options[:config_vars] = o
end
end.parse!
unless options[:heroku_app]
STDERR.puts "Missing --heroku-app"
exit 1
end
unless options[:config_vars]
STDERR.puts "Missing --config-vars"
exit 1
end
secret_hash = {}
options[:config_vars].each do |config_var|
secret_value = `heroku config:get #{config_var} --app #{options[:heroku_app]}`
secret_hash[config_var] = secret_value.chomp
end
puts JSON.pretty_generate(secret_hash)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment