class Hiera::Backend::Eyaml::Subcommands::Encrypt
Public Class Methods
description()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/encrypt.rb, line 44 def self.description "encrypt some data" end
execute()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/encrypt.rb, line 71 def self.execute case Eyaml::Options[:source] when :eyaml parser = Parser::ParserFactory.decrypted_parser tokens = parser.parse(Eyaml::Options[:input_data]) encrypted = tokens.map{ |token| token.to_encrypted } encrypted.join else encryptor = Encryptor.find ciphertext = encryptor.encode( encryptor.encrypt(Eyaml::Options[:input_data]) ) token = Parser::EncToken.new(:block, Eyaml::Options[:input_data], encryptor, ciphertext, nil, ' ') case Eyaml::Options[:output] when "block" token.to_encrypted :label => Eyaml::Options[:label], :use_chevron => !Eyaml::Options[:label].nil?, :format => :block when "string" token.to_encrypted :label => Eyaml::Options[:label], :format => :string when "examples" string = token.to_encrypted :label => Eyaml::Options[:label] || 'string', :format => :string block = token.to_encrypted :label => Eyaml::Options[:label] || 'block', :format => :block "#{string}\n\nOR\n\n#{block}" else token.to_encrypted :format => :string end end end
options()
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/encrypt.rb, line 13 def self.options [{:name => :password, :description => "Source input is a password entered on the terminal", :short => 'p'}, {:name => :string, :description => "Source input is a string provided as an argument", :short => 's', :type => :string}, {:name => :file, :description => "Source input is a regular file", :short => 'f', :type => :string}, {:name => :stdin, :description => "Source input is taken from stdin", :short => :none}, {:name => :eyaml, :description => "Source input is an eyaml file", :short => 'e', :type => :string}, {:name => :output, :description => "Output format of final result (examples, block, string)", :type => :string, :short => 'o', :default => "examples"}, {:name => :label, :description => "Apply a label to the encrypted result", :short => 'l', :type => :string} ] end
validate(options)
click to toggle source
# File lib/hiera/backend/eyaml/subcommands/encrypt.rb, line 48 def self.validate options sources = [:password, :string, :file, :stdin, :eyaml].collect {|x| x if options[x]}.compact Optimist::die "You must specify a source" if sources.count.zero? Optimist::die "You can only specify one of (#{sources.join(', ')})" if sources.count > 1 options[:source] = sources.first options[:input_data] = case options[:source] when :password require 'hiera/backend/eyaml/highlinehelper' HighlineHelper.read_password when :string options[:string] when :file File.read options[:file] when :stdin STDIN.read when :eyaml File.read options[:eyaml] end options end