hiera-eyaml 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +16 -0
- data/README.md +10 -2
- data/bin/eyaml +15 -2
- data/lib/hiera/backend/eyaml.rb +1 -2
- data/lib/hiera/backend/eyaml/CLI.rb +2 -2
- data/lib/hiera/backend/eyaml/encryptor.rb +4 -0
- data/lib/hiera/backend/eyaml/encryptors/pkcs7.rb +1 -1
- data/lib/hiera/backend/eyaml/options.rb +9 -5
- data/lib/hiera/backend/eyaml/subcommand.rb +18 -8
- data/lib/hiera/backend/eyaml/subcommands/edit.rb +44 -5
- data/lib/hiera/backend/eyaml/subcommands/version.rb +3 -7
- data/lib/hiera/backend/eyaml/utils.rb +59 -20
- data/tools/regem.sh +1 -1
- metadata +53 -44
- checksums.yaml +0 -7
data/CHANGES.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Change log for hiera-eyaml
|
2
|
+
==========================
|
3
|
+
|
4
|
+
2.04
|
5
|
+
----
|
6
|
+
|
7
|
+
- Add change log
|
8
|
+
- #118 - Some initial support for spaces in filenames (primarily targeted at windows platforms) (@elyscape)
|
9
|
+
- #114 - Add new config file resolution so that a system wide /etc/eyaml/config.yaml is processed first (@gtmtech)
|
10
|
+
- #112 - Improve debugging options and colorise output (@gtmtech)
|
11
|
+
- #102 - Extension of temp files should be yaml to help editors provide syntax highlighting (@ColinHebert)
|
12
|
+
- #90, #121, #122 - Add preamble in edit mode to make it easier to remember how to edit (@sihil)
|
13
|
+
- #96, #111, #116 - Various updates to docs
|
14
|
+
|
15
|
+
2.03
|
16
|
+
----
|
data/README.md
CHANGED
@@ -59,6 +59,10 @@ Setup
|
|
59
59
|
|
60
60
|
$ gem install hiera-eyaml
|
61
61
|
|
62
|
+
### Installing hiera-eyaml for the new [puppet-server](https://github.com/puppetlabs/puppet-server)
|
63
|
+
|
64
|
+
$ puppetserver gem install hiera-eyaml
|
65
|
+
|
62
66
|
### Generate keys
|
63
67
|
|
64
68
|
The first step is to create a pair of keys:
|
@@ -234,7 +238,7 @@ Configuration file for eyaml
|
|
234
238
|
|
235
239
|
Default parameters for the eyaml command line tool can be provided by creating a configuration YAML file.
|
236
240
|
|
237
|
-
|
241
|
+
Config files will be read first from `/etc/eyaml/config.yaml`, then from `~/.eyaml/config.yaml` and finally by anything referenced in the `EYAML_CONFIG` environment variable
|
238
242
|
|
239
243
|
The file takes any long form argument that you can provide on the command line. For example, to override the pkcs7 keys:
|
240
244
|
```yaml
|
@@ -271,9 +275,12 @@ When editing eyaml files, you will see that the unencrypted plaintext is marked
|
|
271
275
|
This is a list of available plugins:
|
272
276
|
|
273
277
|
- [hiera-eyaml-gpg](https://github.com/sihil/hiera-eyaml-gpg) - Provide GPG encryption
|
274
|
-
- [hiera-eyaml-plaintext](https://github.com/
|
278
|
+
- [hiera-eyaml-plaintext](https://github.com/gtmtechltd/hiera-eyaml-plaintext) - This is a no-op encryption plugin that
|
275
279
|
simply base64 encodes the values. It exists as an example plugin to create your own and to do integration tests on
|
276
280
|
hiera-eyaml. **THIS SHOULD NOT BE USED IN PRODUCTION**
|
281
|
+
- [hiera-eyaml-twofac](https://github.com/gtmtechltd/hiera-eyaml-twofac) - PKCS7 keypair + AES256 symmetric password for two-factor encryption
|
282
|
+
Note that this plugin mandates the user enter a password. It is useful for non-automated scenarios, and is not advised to be used
|
283
|
+
in conjunction with puppet, as it requires entry of a password over a terminal.
|
277
284
|
|
278
285
|
|
279
286
|
Notes
|
@@ -322,6 +329,7 @@ You'll need to have a few requirements installed:
|
|
322
329
|
* `aruba` (gem)
|
323
330
|
* `cucumber` (gem)
|
324
331
|
* `puppet` (gem)
|
332
|
+
* `hiera-eyaml-plaintext` (gem)
|
325
333
|
|
326
334
|
|
327
335
|
Authors
|
data/bin/eyaml
CHANGED
@@ -9,5 +9,18 @@ require 'hiera/backend/eyaml/encryptors/pkcs7'
|
|
9
9
|
Hiera::Backend::Eyaml::Encryptors::Pkcs7.register
|
10
10
|
Hiera::Backend::Eyaml::Plugins.find
|
11
11
|
|
12
|
-
|
13
|
-
Hiera::Backend::Eyaml::CLI.
|
12
|
+
begin
|
13
|
+
Hiera::Backend::Eyaml::CLI.parse
|
14
|
+
rescue StandardError => e
|
15
|
+
Hiera::Backend::Eyaml::Utils.warn e.message
|
16
|
+
Hiera::Backend::Eyaml::Utils.debug e.backtrace.join("\n")
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
Hiera::Backend::Eyaml::CLI.execute
|
22
|
+
rescue StandardError => e
|
23
|
+
Hiera::Backend::Eyaml::Utils.warn e.message
|
24
|
+
Hiera::Backend::Eyaml::Utils.debug e.backtrace.join("\n")
|
25
|
+
exit 1
|
26
|
+
end
|
data/lib/hiera/backend/eyaml.rb
CHANGED
@@ -2,7 +2,7 @@ class Hiera
|
|
2
2
|
module Backend
|
3
3
|
module Eyaml
|
4
4
|
|
5
|
-
VERSION = "2.0.
|
5
|
+
VERSION = "2.0.4"
|
6
6
|
DESCRIPTION = "Hiera-eyaml is a backend for Hiera which provides OpenSSL encryption/decryption for Hiera properties"
|
7
7
|
|
8
8
|
class RecoverableError < StandardError
|
@@ -45,4 +45,3 @@ class Hiera
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
48
|
-
|
@@ -34,7 +34,7 @@ class Hiera
|
|
34
34
|
|
35
35
|
options = command_class.validate options
|
36
36
|
Eyaml::Options.set options
|
37
|
-
Eyaml::Options.
|
37
|
+
Eyaml::Options.trace
|
38
38
|
|
39
39
|
end
|
40
40
|
|
@@ -46,7 +46,7 @@ class Hiera
|
|
46
46
|
puts result unless result.nil?
|
47
47
|
rescue Exception => e
|
48
48
|
Utils.warn e.message
|
49
|
-
Utils.
|
49
|
+
Utils.debug e.backtrace.join("\n")
|
50
50
|
end
|
51
51
|
|
52
52
|
end
|
@@ -20,13 +20,17 @@ class Hiera
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.
|
24
|
-
Utils::
|
25
|
-
Utils::
|
23
|
+
def self.trace
|
24
|
+
Utils::trace "Dump of eyaml tool options dict:"
|
25
|
+
Utils::trace "--------------------------------"
|
26
26
|
@@options.each do |k, v|
|
27
|
-
|
27
|
+
begin
|
28
|
+
Utils::trace sprintf "%18s %-18s = %18s %-18s", "(#{k.class.name})", k.to_s, "(#{v.class.name})", v.to_s
|
29
|
+
rescue
|
30
|
+
Utils::trace sprintf "%18s %-18s = %18s %-18s", "(#{k.class.name})", k.to_s, "(#{v.class.name})", "<unprintable>" # case where v is binary
|
31
|
+
end
|
28
32
|
end
|
29
|
-
Utils::
|
33
|
+
Utils::trace "--------------------------------"
|
30
34
|
end
|
31
35
|
|
32
36
|
end
|
@@ -22,6 +22,9 @@ class Hiera
|
|
22
22
|
{:name => :verbose,
|
23
23
|
:description => "Be more verbose",
|
24
24
|
:short => 'v'},
|
25
|
+
{:name => :trace,
|
26
|
+
:description => "Enable trace debug",
|
27
|
+
:short => 't'},
|
25
28
|
{:name => :quiet,
|
26
29
|
:description => "Be less verbose",
|
27
30
|
:short => 'q'},
|
@@ -31,21 +34,24 @@ class Hiera
|
|
31
34
|
]
|
32
35
|
|
33
36
|
def self.load_config_file
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
37
|
+
config = {}
|
38
|
+
[ "/etc/eyaml/config.yaml", "#{ENV['HOME']}/.eyaml/config.yaml", "#{ENV['EYAML_CONFIG']}" ].each do |config_file|
|
39
|
+
begin
|
40
|
+
yaml_contents = YAML.load_file(config_file)
|
41
|
+
Utils::info "Loaded config from #{config_file}"
|
42
|
+
config.merge! yaml_contents
|
43
|
+
rescue
|
44
|
+
raise StandardError, "Could not open config file \"#{config_file}\" for reading"
|
45
|
+
end if config_file and File.file? config_file
|
41
46
|
end
|
47
|
+
config
|
42
48
|
end
|
43
49
|
|
44
50
|
def self.all_options
|
45
51
|
options = @@global_options.dup
|
46
52
|
options += self.options if self.options
|
47
53
|
options += Plugins.options
|
48
|
-
# merge in defaults from configuration
|
54
|
+
# merge in defaults from configuration files
|
49
55
|
config_file = self.load_config_file
|
50
56
|
options.map!{ | opt|
|
51
57
|
key_name = "#{opt[:name]}"
|
@@ -106,6 +112,10 @@ class Hiera
|
|
106
112
|
Hiera::Backend::Eyaml.verbosity_level += 1
|
107
113
|
end
|
108
114
|
|
115
|
+
if options[:trace]
|
116
|
+
Hiera::Backend::Eyaml.verbosity_level += 2
|
117
|
+
end
|
118
|
+
|
109
119
|
if options[:quiet]
|
110
120
|
Hiera::Backend::Eyaml.verbosity_level = 0
|
111
121
|
end
|
@@ -12,7 +12,8 @@ class Hiera
|
|
12
12
|
class Edit < Subcommand
|
13
13
|
|
14
14
|
def self.options
|
15
|
-
[
|
15
|
+
[{ :name => :no_preamble,
|
16
|
+
:description => "Don't prefix edit sessions with the informative preamble" }]
|
16
17
|
end
|
17
18
|
|
18
19
|
def self.description
|
@@ -23,11 +24,46 @@ class Hiera
|
|
23
24
|
"Usage: eyaml edit [options] <some-eyaml-file>"
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.prefix
|
28
|
+
'#|'
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.preamble
|
32
|
+
tags = (["pkcs7"] + Plugins.plugins.collect {|plugin|
|
33
|
+
plugin.name.split("hiera-eyaml-").last
|
34
|
+
}).collect{|name| Encryptor.find(name).tag}
|
35
|
+
|
36
|
+
preamble = <<-eos
|
37
|
+
This is eyaml edit mode. This text (lines starting with #{self.prefix} at the top of the
|
38
|
+
file) will be removed when you save and exit.
|
39
|
+
- To edit encrypted values, change the content of the DEC(<num>)::PKCS7[]!
|
40
|
+
block#{(tags.size>1) ? " (or #{tags.drop(1).collect {|tag| "DEC(<num>)::#{tag}[]!" }.join(' or ')})." : '.' }
|
41
|
+
WARNING: DO NOT change the number in the parentheses.
|
42
|
+
- To add a new encrypted value copy and paste a new block from the
|
43
|
+
appropriate example below. Note that:
|
44
|
+
* the text to encrypt goes in the square brackets
|
45
|
+
* ensure you include the exclamation mark when you copy and paste
|
46
|
+
* you must not include a number when adding a new block
|
47
|
+
e.g. #{tags.collect {|tag| "DEC::#{tag}[]!" }.join(' -or- ')}
|
48
|
+
eos
|
49
|
+
|
50
|
+
preamble.gsub(/^/, "#{self.prefix} ")
|
51
|
+
end
|
52
|
+
|
26
53
|
def self.validate options
|
27
54
|
Trollop::die "You must specify an eyaml file" if ARGV.empty?
|
28
55
|
options[:source] = :eyaml
|
29
56
|
options[:eyaml] = ARGV.shift
|
30
|
-
|
57
|
+
if File.exists? options[:eyaml]
|
58
|
+
begin
|
59
|
+
options[:input_data] = File.read options[:eyaml]
|
60
|
+
rescue
|
61
|
+
raise StandardError, "Could not open file for reading: #{options[:eyaml]}"
|
62
|
+
end
|
63
|
+
else
|
64
|
+
Utils.info "#{options[:eyaml]} doesn't exist, editing new file"
|
65
|
+
options[:input_data] = "---"
|
66
|
+
end
|
31
67
|
options
|
32
68
|
end
|
33
69
|
|
@@ -35,16 +71,19 @@ class Hiera
|
|
35
71
|
encrypted_parser = Parser::ParserFactory.encrypted_parser
|
36
72
|
tokens = encrypted_parser.parse Eyaml::Options[:input_data]
|
37
73
|
decrypted_input = tokens.each_with_index.to_a.map{|(t,index)| t.to_decrypted :index => index}.join
|
38
|
-
|
74
|
+
decrypted_file_content = Eyaml::Options[:no_preamble] ? decrypted_input : (self.preamble + decrypted_input)
|
75
|
+
decrypted_file = Utils.write_tempfile decrypted_file_content
|
39
76
|
|
40
77
|
editor = Utils.find_editor
|
41
78
|
|
42
79
|
begin
|
43
|
-
system "#{editor} #{decrypted_file}"
|
80
|
+
system "#{editor} \"#{decrypted_file}\""
|
44
81
|
status = $?
|
45
82
|
|
46
83
|
raise StandardError, "File was moved by editor" unless File.file? decrypted_file
|
47
|
-
|
84
|
+
raw_edited_file = File.read decrypted_file
|
85
|
+
# strip comments at start of file
|
86
|
+
edited_file = raw_edited_file.split($/,-1).drop_while {|line| line.start_with?(self.prefix)}.join($/)
|
48
87
|
|
49
88
|
raise StandardError, "Editor #{editor} has not exited?" unless status.exited?
|
50
89
|
raise StandardError, "Editor did not exit successfully (exit code #{status.exitstatus}), aborting" unless status.exitstatus == 0
|
@@ -19,11 +19,7 @@ class Hiera
|
|
19
19
|
def self.execute
|
20
20
|
plugin_versions = {}
|
21
21
|
|
22
|
-
|
23
|
-
Version info
|
24
|
-
|
25
|
-
hiera-eyaml (core): #{Eyaml::VERSION}
|
26
|
-
EOS
|
22
|
+
Eyaml::Utils.info "hiera-eyaml (core): #{Eyaml::VERSION}"
|
27
23
|
|
28
24
|
Plugins.plugins.each do |plugin|
|
29
25
|
plugin_shortname = plugin.name.split("hiera-eyaml-").last
|
@@ -32,7 +28,7 @@ EOS
|
|
32
28
|
rescue
|
33
29
|
"unknown (is plugin compatible with eyaml 2.0+ ?)"
|
34
30
|
end
|
35
|
-
|
31
|
+
Eyaml::Utils.info "hiera-eyaml-#{plugin_shortname} (gem): #{plugin_version}"
|
36
32
|
end
|
37
33
|
|
38
34
|
nil
|
@@ -44,4 +40,4 @@ EOS
|
|
44
40
|
end
|
45
41
|
end
|
46
42
|
end
|
47
|
-
end
|
43
|
+
end
|
@@ -34,6 +34,20 @@ class Hiera
|
|
34
34
|
editor = ENV['EDITOR']
|
35
35
|
editor ||= %w{ /usr/bin/sensible-editor /usr/bin/editor /usr/bin/vim /usr/bin/vi }.collect {|e| e if FileTest.executable? e}.compact.first
|
36
36
|
raise StandardError, "Editor not found. Please set your EDITOR env variable" if editor.nil?
|
37
|
+
if editor.index(' ')
|
38
|
+
editor = editor.dup if editor.frozen? # values from ENV are frozen
|
39
|
+
editor.gsub!(/([^\\]|^)~/, '\1' + ENV['HOME']) # replace ~ with home unless escaped
|
40
|
+
editor.gsub!(/(^|[^\\])"/, '\1') # remove unescaped quotes during processing
|
41
|
+
editor.gsub!(/\\ /, ' ') # unescape spaces since we quote paths
|
42
|
+
pieces = editor.split(' ')
|
43
|
+
paths = pieces.each_with_index.map {|_,x| pieces[0..x].join(' ')}.reverse # get possible paths, starting with longest
|
44
|
+
extensions = (ENV['PATHEXT'] || '').split(';') # handle Windows executables
|
45
|
+
editorfile = paths.select { |path|
|
46
|
+
FileTest.file?(path) || ! extensions.select {|ext| FileTest.file?(path + ext) }.empty?
|
47
|
+
}.first
|
48
|
+
raise StandardError, "Editor not found. Please set your EDITOR env variable" if editorfile.nil?
|
49
|
+
editor = "\"#{editorfile}\"#{editor[editorfile.size()..-1]}"
|
50
|
+
end
|
37
51
|
editor
|
38
52
|
end
|
39
53
|
|
@@ -45,11 +59,12 @@ class Hiera
|
|
45
59
|
num_bytes.times { file.print(byte.chr) }
|
46
60
|
file.fsync
|
47
61
|
end
|
62
|
+
file.close
|
48
63
|
File.delete args[:file]
|
49
64
|
end
|
50
65
|
|
51
66
|
def self.write_tempfile data_to_write
|
52
|
-
file = Tempfile.open('eyaml_edit')
|
67
|
+
file = Tempfile.open(['eyaml_edit', '.yaml'])
|
53
68
|
path = file.path
|
54
69
|
file.close!
|
55
70
|
|
@@ -107,7 +122,7 @@ class Hiera
|
|
107
122
|
root_folder = File.dirname(__FILE__) + "/" + Array.new(num_class_hierarchy_levels).fill("..").join("/")
|
108
123
|
class_folder = root_folder + "/" + classdir
|
109
124
|
Dir[File.expand_path("#{class_folder}/*.rb")].uniq.each do |file|
|
110
|
-
|
125
|
+
self.trace "Requiring file: #{file}"
|
111
126
|
require file
|
112
127
|
end
|
113
128
|
end
|
@@ -134,36 +149,60 @@ class Hiera
|
|
134
149
|
else
|
135
150
|
message.merge!({:msg => messageinfo.to_s})
|
136
151
|
end
|
152
|
+
message[:prefix] = "[#{message[:from]}]"
|
153
|
+
message[:spacer] = " #{' ' * message[:from].length} "
|
154
|
+
formatted_output = message[:msg].split("\n").each_with_index.map do |line, index|
|
155
|
+
if index == 0
|
156
|
+
"#{message[:prefix]} #{line}"
|
157
|
+
else
|
158
|
+
"#{message[:spacer]} #{line}"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
formatted_output.join "\n"
|
137
162
|
end
|
138
163
|
|
139
164
|
def self.warn messageinfo
|
140
|
-
message
|
141
|
-
message = "[#{message[:from]}] !!! #{message[:msg]}"
|
142
|
-
if self.hiera?
|
143
|
-
Hiera.warn message
|
144
|
-
else
|
145
|
-
STDERR.puts message
|
146
|
-
end
|
165
|
+
self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :warn, :cli_color => :red })
|
147
166
|
end
|
148
167
|
|
149
168
|
def self.info messageinfo
|
150
|
-
message
|
151
|
-
message = "[#{message[:from]}] #{message[:msg]}"
|
152
|
-
if self.hiera?
|
153
|
-
Hiera.debug message if Eyaml.verbosity_level > 0
|
154
|
-
else
|
155
|
-
STDERR.puts message if Eyaml.verbosity_level > 0
|
156
|
-
end
|
169
|
+
self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :white, :threshold => 0 })
|
157
170
|
end
|
158
171
|
|
159
172
|
def self.debug messageinfo
|
160
|
-
message
|
161
|
-
|
173
|
+
self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :green, :threshold => 1 })
|
174
|
+
end
|
175
|
+
|
176
|
+
def self.trace messageinfo
|
177
|
+
self.print_message({ :message => self.structure_message( messageinfo ), :hiera_loglevel => :debug, :cli_color => :blue, :threshold => 2 })
|
178
|
+
end
|
179
|
+
|
180
|
+
def self.print_message( args )
|
181
|
+
message = args[:message] ||= ""
|
182
|
+
hiera_loglevel = args[:hiera_loglevel] ||= :debug
|
183
|
+
cli_color = args[:cli_color] ||= :blue
|
184
|
+
threshold = args[:threshold]
|
185
|
+
|
162
186
|
if self.hiera?
|
163
|
-
Hiera.
|
187
|
+
Hiera.send(hiera_loglevel, message) if threshold.nil? or Eyaml.verbosity_level > threshold
|
164
188
|
else
|
165
|
-
STDERR.puts message if Eyaml.verbosity_level >
|
189
|
+
STDERR.puts self.colorize( message, cli_color ) if threshold.nil? or Eyaml.verbosity_level > threshold
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
def self.colorize message, color
|
194
|
+
suffix = "\e[0m"
|
195
|
+
prefix = case color
|
196
|
+
when :red
|
197
|
+
"\e[31m"
|
198
|
+
when :green
|
199
|
+
"\e[32m"
|
200
|
+
when :blue
|
201
|
+
"\e[34m"
|
202
|
+
else #:white
|
203
|
+
"\e[0m"
|
166
204
|
end
|
205
|
+
"#{prefix}#{message}#{suffix}"
|
167
206
|
end
|
168
207
|
|
169
208
|
end
|
data/tools/regem.sh
CHANGED
metadata
CHANGED
@@ -1,47 +1,58 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiera-eyaml
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.4
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Tom Poulton
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
15
|
name: trollop
|
16
|
-
|
17
|
-
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.0'
|
22
22
|
type: :runtime
|
23
|
-
version_requirements: *id001
|
24
|
-
- !ruby/object:Gem::Dependency
|
25
|
-
name: highline
|
26
23
|
prerelease: false
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: highline
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
31
37
|
version: 1.6.19
|
32
38
|
type: :runtime
|
33
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.6.19
|
34
46
|
description: Hiera backend for decrypting encrypted yaml properties
|
35
47
|
email:
|
36
|
-
executables:
|
48
|
+
executables:
|
37
49
|
- eyaml
|
38
50
|
extensions: []
|
39
|
-
|
40
51
|
extra_rdoc_files: []
|
41
|
-
|
42
|
-
files:
|
52
|
+
files:
|
43
53
|
- .gitignore
|
44
54
|
- .travis.yml
|
55
|
+
- CHANGES.md
|
45
56
|
- Gemfile
|
46
57
|
- Gemfile.lock
|
47
58
|
- LICENSE.txt
|
@@ -76,30 +87,28 @@ files:
|
|
76
87
|
- sublime_text/eyaml.syntax_definition.json
|
77
88
|
- tools/regem.sh
|
78
89
|
homepage: http://github.com/TomPoulton/hiera-eyaml
|
79
|
-
licenses:
|
90
|
+
licenses:
|
80
91
|
- MIT
|
81
|
-
metadata: {}
|
82
|
-
|
83
92
|
post_install_message:
|
84
93
|
rdoc_options: []
|
85
|
-
|
86
|
-
require_paths:
|
94
|
+
require_paths:
|
87
95
|
- lib
|
88
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version:
|
94
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
-
|
96
|
-
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
97
108
|
requirements: []
|
98
|
-
|
99
109
|
rubyforge_project:
|
100
|
-
rubygems_version:
|
110
|
+
rubygems_version: 1.8.23.2
|
101
111
|
signing_key:
|
102
|
-
specification_version:
|
112
|
+
specification_version: 3
|
103
113
|
summary: OpenSSL Encryption backend for Hiera
|
104
114
|
test_files: []
|
105
|
-
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 3912bf9a2405844f834908a20b1366efda3dd75d
|
4
|
-
data.tar.gz: 5cec508a47fab8d5a4f4ec19808c436dd61d8d6a
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: dc1f52d302216134c15e7880f77c5f3c8aa639f4ac1be73b30fca4ae9e0c76a30a7bf95999cb94313fe7c9c4632853cbafdf08559658d83c94c81a9e6ec72097
|
7
|
-
data.tar.gz: 861f3b3ca88829e533f65ac4a36afc5e674b2217d84855005c913c3577e94f490eeefb70c027daa89d77f8b650f9e9c926b55e4217a87945a0e7bcb4cb71d116
|