class Chef::Knife::TarsnapKeyExport

Public Instance Methods

confirm_overwrite?(file) click to toggle source
# File lib/chef/knife/tarsnap_key_export.rb, line 53
def confirm_overwrite?(file)
  return true if config[:yes]

  if File.exists?(file)
    stdout.print "Overwrite #{file}? (Y/N) "
    answer = stdin.readline
    answer.chomp!
    case answer
    when "Y", "y"
      true
    when "N", "n"
      self.msg("Skipping #{file}")
      false
    else
      self.msg("I have no idea what to do with #{answer}")
      self.msg("Just say Y or N, please.")
      confirm(question)
    end
  end
  true
end
run() click to toggle source
# File lib/chef/knife/tarsnap_key_export.rb, line 33
def run

  begin
    Dir.mkdir(config[:directory], 0700)
  rescue Errno::EEXIST => e
    # continue...
  end

  tarsnap_nodes.each do |n|
    keyfile = File.join(config[:directory], "#{n}.key")
    if confirm_overwrite?(keyfile)
      ui.msg "Exporting #{keyfile}"
      File.write(keyfile, fetch_key(n))
    end
  end

  ui.msg "Export finished!"

end