class Hiera::Backend::Eyaml::Subcommands::Recrypt
Public Class Methods
Source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 19 def self.description 'recrypt an eyaml file' end
Source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 36 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.write("#{filename}", encrypted_output) nil end
Source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 23 def self.helptext 'Usage: eyaml recrypt [options] <some-eyaml-file>' end
Source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 10 def self.options [ { name: :change_encryption, description: 'Specify the new encryption method that should be used for the file', short: 'd', default: 'pkcs7', }, ] end
Source
# File lib/hiera/backend/eyaml/subcommands/recrypt.rb, line 27 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