class Chef::Knife::HitoriFileEnc

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/hitori_file_enc.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], JSON.dump(encrypt(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_enc.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_enc.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. Please "knife hitori key create" first.'
    return false
  end
  return true
end