Class: Hiera::Backend::Eyaml::Subcommands::Recrypt
Class Method Summary
collapse
all_options, attach_option, find, hidden?, load_config_file, parse, prettyname
Class Method Details
.description ⇒ Object
21
22
23
|
# File 'lib/hiera/backend/eyaml/subcommands/recrypt.rb', line 21
def self.description
"recrypt an eyaml file"
end
|
.execute ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# 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 ⇒ Object
25
26
27
|
# File 'lib/hiera/backend/eyaml/subcommands/recrypt.rb', line 25
def self.helptext
"Usage: eyaml recrypt [options] <some-eyaml-file>"
end
|
.options ⇒ Object
12
13
14
15
16
17
18
19
|
# 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) ⇒ Object
29
30
31
32
33
34
35
36
|
# 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
|