class HerokuDnsimpleCert::CLI

Constants

OPTIONS

Public Instance Methods

update() click to toggle source

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength

# File lib/heroku_dnsimple_cert/cli.rb, line 19
def update
  say "Fetching certificate chain from DNSimple for #{options['dnsimple_common_name']} ...", :green
  dnsimple_certificate.certificate_chain

  say "Fetching private key from DNSimple for #{options['dnsimple_common_name']}. ..", :green
  dnsimple_certificate.private_key

  say "Fetching certificates from Heroku app #{options['heroku_app']} ...", :green
  heroku_certificate.certificates

  if heroku_certificate.certificates.any?
    say "Updating existing certificate on Heroku app #{options['heroku_app']} ...", :green
    heroku_certificate.update
  else
    say "Adding new certificate on Heroku app #{options['heroku_app']} ...", :green
    heroku_certificate.create
  end

  say "Done!", :green
rescue => e
  say "Error adding certificate ...", :red
  say "   Response: #{e}", :red

  abort
end

Private Instance Methods

dnsimple_certificate() click to toggle source
# File lib/heroku_dnsimple_cert/cli.rb, line 47
def dnsimple_certificate
  @dnsimple_certificate ||= DnsimpleCertificate.new(
    token: options["dnsimple_token"],
    account_id: options["dnsimple_account_id"],
    domain: options["dnsimple_domain"],
    common_name:  options["dnsimple_common_name"]
  )
end
heroku_certificate() click to toggle source
# File lib/heroku_dnsimple_cert/cli.rb, line 56
def heroku_certificate
  @heroku_certificate ||= HerokuCertificate.new(
    token: options["heroku_token"],
    app: options["heroku_app"],
    certificate_chain: dnsimple_certificate.certificate_chain,
    private_key: dnsimple_certificate.private_key
  )
end
say(message = "", color = nil) click to toggle source
Calls superclass method
# File lib/heroku_dnsimple_cert/cli.rb, line 65
def say(message = "", color = nil)
  color = nil unless $stdout.tty?
  super(message.to_s, color)
end