class Chef::Knife::HitoriFileDec

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/hitori_file_dec.rb, line 25
def run
  update_environment(config[:environment]) if config[:environment]
  exit 1 unless validate

  secret = Chef::EncryptedDataBagItem.load_secret(secret_file_path)
  data = File.read(config[:in_file])
  File.write(config[:out_file], decrypt(JSON.parse(data), secret))
  ui.info ui.color("Saved in #{config[:out_file]}", :green)
end
secret_file_path() click to toggle source
# File lib/chef/knife/hitori_file_dec.rb, line 35
def secret_file_path
  config[:secret_file] || Chef::Config[:encrypted_data_bag_secret]
end
validate() click to toggle source
# File lib/chef/knife/hitori_file_dec.rb, line 39
def validate
  unless config[:in_file]
    ui.error '-i IN_FILE must be specified'
    return false
  end

  unless ::File.exists?(config[:in_file])
    ui.error "IN_FILE: #{config[:in_file]} not found"
    return false
  end

  unless config[:out_file]
    ui.error '-o OUT_FILE must be specified'
    return false
  end

  unless ::File.exists?(secret_file_path)
    ui.error 'No secret key file is found.'
    return false
  end

  return true
end