module Idlc::Deploy::Keypair

def generate(outdir)

def generate(outdir)
  raise ArgumentError, 'Must specify output directory' if outdir.nil?
  FileUtils.mkdir_p outdir unless File.directory? outdir
  private_key_file = "#{outdir}/private_key.pem"
  public_key_file = "#{outdir}/public_key.pem"
  rsa_key = if File.exist? private_key_file
    return if File.exist? public_key_file
    private_key_data = File.read(private_key_file)
    SSHKey.new(private_key_data)
  else
    SSHKey.generate
  end
  private_key = rsa_key.private_key
  public_key = rsa_key.ssh_public_key
  File.open(private_key_file, 'w') { |file| file.write(private_key) }
  File.open(public_key_file, 'w') { |file| file.write(public_key) }
end