class Hiera::Backend::Eyaml::Subcommands::Recrypt
Public Class Methods
description()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 21 def self.description "recrypt an eyaml file" end
execute()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 38 def self.execute encrypted_parser = Parser::ParserFactory.encrypted_parser tokens = encrypted_parser.parse Eyaml::Options[:input_data] decrypted_input = tokens.each_with_index.to_a.map{|(t,index)| t.to_decrypted :index => index}.join decrypted_parser = Parser::ParserFactory.decrypted_parser edited_tokens = decrypted_parser.parse(decrypted_input) encrypted_output = edited_tokens.map{ |t| t.to_encrypted({:change_encryption => @change_encryption}) }.join filename = Eyaml::Options[:eyaml] File.open("#{filename}", 'w') { |file| file.write encrypted_output } nil end
helptext()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 25 def self.helptext "Usage: eyaml recrypt [options] <some-eyaml-file>" end
options()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 12 def self.options [ {:name => :change_encryption, :description => "Specify the new encryption method that should be used for the file", :short => 'd', :default => "pkcs7"} ] end
validate(options)
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 29 def self.validate options Optimist::die "You must specify an eyaml file" if ARGV.empty? options[:source] = :eyaml options[:eyaml] = ARGV.shift options[:input_data] = File.read options[:eyaml] @change_encryption = options[:change_encryption] options end