class CertWatch::PemDirectoryInstaller

Public Class Methods

new(options) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 3
def initialize(options)
  @pem_directory = options.fetch(:pem_directory)
  @input_directory = options.fetch(:input_directory)
  @reload_command = options[:reload_command]
end

Public Instance Methods

install(_domain) click to toggle source
# File lib/cert_watch/installer.rb, line 3
def install(_domain)
  fail(NotImplementedError)
end

Private Instance Methods

check_inputs_exist(domain) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 24
def check_inputs_exist(domain)
  Shell.sudo("ls #{input_files(domain)}")
rescue Shell::CommandFailed
  fail(InstallError, "Input files '#{input_files(domain)}' do not exist.")
end
input_files(domain) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 34
def input_files(domain)
  ['fullchain.pem', 'privkey.pem'].map do |file_name|
    File.join(@input_directory, domain, file_name)
  end.join(' ')
end
pem_file(domain) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 40
def pem_file(domain)
  File.join(@pem_directory, "#{domain}.pem")
end
perform_reload_command() click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 44
def perform_reload_command
  return unless @reload_command
  sudo(@reload_command)
end
sudo(command) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 49
def sudo(command)
  Shell.sudo(command)
rescue Shell::CommandFailed => e
  fail(InstallError, e.message)
end
write_pem_file(domain) click to toggle source
# File lib/cert_watch/pem_directory_installer.rb, line 30
def write_pem_file(domain)
  sudo("cat #{input_files(domain)} > #{pem_file(domain)}")
end