hiera-eyaml 2.0.6 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/CHANGES.md +24 -17
- data/Gemfile +2 -2
- data/hiera-eyaml.gemspec +2 -2
- data/lib/hiera/backend/eyaml.rb +1 -1
- data/lib/hiera/backend/eyaml/parser/encrypted_tokens.rb +5 -5
- data/tools/git_tag_release.rb +98 -0
- metadata +47 -55
- data/Gemfile.lock +0 -48
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 91148de066d290b4cdd6341ca54a3e20f7ae62fc
|
4
|
+
data.tar.gz: 349951ef92e5d63dbd56cd769e32cf9fc16eb7ec
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 633324c4a0bb00849b924fb667975650b88256e0941b4ff123499d64d6d11f14f8f47769f9c301423a44d9bd9c9a7257de9eeaa0673290473c1332420882e07f
|
7
|
+
data.tar.gz: 22a2eae199bae8f23f96bfe68634a440eb2dc1db512463b2c54f711085d09e318cd1f2a111232b068f8ec59967c7c8eed7f98a1c67daf638896e2e9ecb004f19
|
data/.gitignore
CHANGED
data/CHANGES.md
CHANGED
@@ -1,26 +1,33 @@
|
|
1
1
|
Change log for hiera-eyaml
|
2
2
|
==========================
|
3
3
|
|
4
|
-
2.
|
5
|
-
|
4
|
+
2.0.7
|
5
|
+
-----
|
6
6
|
|
7
|
-
- #
|
7
|
+
- (#142) - Fixed highline dependency to exclude newer versions that are not compatible with ruby 1.8.7 (@elyscape)
|
8
|
+
- (#136) - \t and \r characters are now supported in encrypted blocks (@elyscape)
|
9
|
+
- (#138) - Added missing tags and new tagging tool (@elyscape)
|
8
10
|
|
9
|
-
2.
|
10
|
-
|
11
|
+
2.0.6
|
12
|
+
-----
|
11
13
|
|
12
|
-
- #
|
14
|
+
- (#131) - Fix another EDITOR bug (#130) that could erase command line flags to the specified editor (@elyscape)
|
13
15
|
|
14
|
-
2.
|
15
|
-
|
16
|
+
2.0.5
|
17
|
+
-----
|
18
|
+
|
19
|
+
- (#128) - Fix a bug (#127) that caused `eyaml edit` to break when `$EDITOR` was a command on PATH rather than a path to a command (@elyscape)
|
20
|
+
|
21
|
+
2.0.4
|
22
|
+
-----
|
16
23
|
|
17
24
|
- Add change log
|
18
|
-
- #118 - Some initial support for spaces in filenames (primarily targeted at windows platforms) (@elyscape)
|
19
|
-
- #114 - Add new config file resolution so that a system wide /etc/eyaml/config.yaml is processed first (@gtmtech)
|
20
|
-
- #112 - Improve debugging options and colorise output (@gtmtech)
|
21
|
-
- #102 - Extension of temp files should be yaml to help editors provide syntax highlighting (@ColinHebert)
|
22
|
-
- #90, #121, #122 - Add preamble in edit mode to make it easier to remember how to edit (@sihil)
|
23
|
-
- #96, #111, #116 - Various updates to docs
|
24
|
-
|
25
|
-
2.
|
26
|
-
|
25
|
+
- (#118) - Some initial support for spaces in filenames (primarily targeted at windows platforms) (@elyscape)
|
26
|
+
- (#114) - Add new config file resolution so that a system wide /etc/eyaml/config.yaml is processed first (@gtmtech)
|
27
|
+
- (#112) - Improve debugging options and colorise output (@gtmtech)
|
28
|
+
- (#102) - Extension of temp files should be yaml to help editors provide syntax highlighting (@ColinHebert)
|
29
|
+
- (#90), #121, #122 - Add preamble in edit mode to make it easier to remember how to edit (@sihil)
|
30
|
+
- (#96), #111, #116 - Various updates to docs
|
31
|
+
|
32
|
+
2.0.3
|
33
|
+
-----
|
data/Gemfile
CHANGED
data/hiera-eyaml.gemspec
CHANGED
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency('trollop', '
|
21
|
-
gem.add_dependency('highline', '
|
20
|
+
gem.add_dependency('trollop', '~> 2.0')
|
21
|
+
gem.add_dependency('highline', '~> 1.6.19')
|
22
22
|
end
|
data/lib/hiera/backend/eyaml.rb
CHANGED
@@ -39,13 +39,13 @@ class Hiera
|
|
39
39
|
case format
|
40
40
|
when :block
|
41
41
|
# strip any white space
|
42
|
-
@cipher = @cipher.gsub(/
|
42
|
+
@cipher = @cipher.gsub(/[ \t]/, "")
|
43
43
|
# normalize indentation
|
44
|
-
ciphertext = @cipher.gsub(
|
44
|
+
ciphertext = @cipher.gsub(/[\n\r]/, "\n" + @indentation)
|
45
45
|
chevron = (args[:use_chevron].nil? || args[:use_chevron]) ? ">\n" : ''
|
46
46
|
"#{label_string}#{chevron}" + @indentation + "ENC[#{@encryptor.tag},#{ciphertext}]"
|
47
47
|
when :string
|
48
|
-
ciphertext = @cipher.gsub(
|
48
|
+
ciphertext = @cipher.gsub(/[\n\r]/, "")
|
49
49
|
"#{label_string}ENC[#{@encryptor.tag},#{ciphertext}]"
|
50
50
|
else
|
51
51
|
raise "#{@format} is not a valid format"
|
@@ -87,7 +87,7 @@ class Hiera
|
|
87
87
|
@string_token_type = EncStringTokenType.new()
|
88
88
|
end
|
89
89
|
def create_token(string)
|
90
|
-
@string_token_type.create_token(string.gsub(
|
90
|
+
@string_token_type.create_token(string.gsub(/\s/, ''))
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
@@ -103,7 +103,7 @@ class Hiera
|
|
103
103
|
|
104
104
|
class EncBlockTokenType < EncTokenType
|
105
105
|
def initialize
|
106
|
-
@regex = />\n(\s*)ENC\[(\w+,)?([a-zA-Z0-9
|
106
|
+
@regex = />\n(\s*)ENC\[(\w+,)?([a-zA-Z0-9\+\/=\s]+?)\]/
|
107
107
|
end
|
108
108
|
def create_token(string)
|
109
109
|
md = @regex.match(string)
|
@@ -0,0 +1,98 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9')
|
5
|
+
$stderr.puts "This script requires Ruby >= 1.9"
|
6
|
+
exit 1
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'open3'
|
10
|
+
result = Open3.capture3('git rev-parse --show-toplevel')
|
11
|
+
unless result[2].exitstatus == 0
|
12
|
+
$stderr.puts "You do not appear to be in a git repository. This script must be run from inside a git repository."
|
13
|
+
exit 2
|
14
|
+
end
|
15
|
+
filename = result[0].lines.first.chomp + '/CHANGES.md'
|
16
|
+
unless File.exist?(filename)
|
17
|
+
$stderr.puts "CHANGES.md not found. Please ensure that CHANGES.md exists."
|
18
|
+
exit 3
|
19
|
+
end
|
20
|
+
contents = IO.read(filename)
|
21
|
+
|
22
|
+
lines = contents.lines.drop(3).map(&:chomp).reject(&:empty?)
|
23
|
+
versions = Hash.new
|
24
|
+
currentversion = nil
|
25
|
+
versions[nil] = []
|
26
|
+
lines.each_with_index do |line, index|
|
27
|
+
if line =~ /\A-+\z/
|
28
|
+
versions[currentversion].pop
|
29
|
+
currentversion = lines[index-1]
|
30
|
+
versions[currentversion] = []
|
31
|
+
else
|
32
|
+
versions[currentversion] << line
|
33
|
+
end
|
34
|
+
end
|
35
|
+
versions.delete(nil)
|
36
|
+
|
37
|
+
def prompt(*args)
|
38
|
+
print(*args)
|
39
|
+
gets.chomp
|
40
|
+
end
|
41
|
+
|
42
|
+
newest = versions.first[0]
|
43
|
+
version = prompt "Version [#{newest}]: "
|
44
|
+
version = newest if version.empty?
|
45
|
+
|
46
|
+
unless versions[version]
|
47
|
+
$stderr.puts "Version #{version} is invalid. Valid versions are: #{versions.keys.join(', ')}"
|
48
|
+
exit 4
|
49
|
+
end
|
50
|
+
|
51
|
+
tagname = "v#{version}"
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
result = Open3.capture3("git rev-parse #{tagname}")
|
56
|
+
if result[2].exitstatus == 0
|
57
|
+
$stderr.puts "Tag #{tagname} already exists."
|
58
|
+
exit 5
|
59
|
+
end
|
60
|
+
|
61
|
+
commit = prompt "Commit: "
|
62
|
+
|
63
|
+
result = Open3.capture3("git --no-pager log -1 #{commit} --format='%ci'")
|
64
|
+
unless result[2].exitstatus == 0
|
65
|
+
$stderr.puts "Commit '#{commit}' is not valid."
|
66
|
+
exit result[2].exitstatus
|
67
|
+
end
|
68
|
+
commitdate = result[0].lines.first.chomp
|
69
|
+
|
70
|
+
def word_wrap(line, width)
|
71
|
+
first_prefix = line.match(/([ -]*)/)[1]
|
72
|
+
prefix = ' ' * first_prefix.size
|
73
|
+
real_width = width - (prefix.size * 2)
|
74
|
+
line[prefix.size..-1].gsub(/(^)?(.{1,#{real_width}})(?: +|$)/) { |s| $1 ? "#{first_prefix}#{s}\n" : "#{prefix}#{s}\n" }
|
75
|
+
end
|
76
|
+
|
77
|
+
require 'tempfile'
|
78
|
+
begin
|
79
|
+
tf = Tempfile.new('tag-message')
|
80
|
+
tf.puts "Version #{version} release"
|
81
|
+
tf.puts ""
|
82
|
+
tf.puts "Changes:"
|
83
|
+
versions[version].each do |line|
|
84
|
+
tf.puts word_wrap(line, 80)
|
85
|
+
end
|
86
|
+
tf.flush
|
87
|
+
|
88
|
+
result = Open3.capture3({'GIT_COMMITTER_DATE' => commitdate}, "git tag -a #{tagname} #{commit} -F #{tf.path}")
|
89
|
+
$stderr.puts result[1]
|
90
|
+
if result[2].exitstatus == 0
|
91
|
+
system "git --no-pager show #{tagname} --no-patch"
|
92
|
+
puts ""
|
93
|
+
puts "Tag created. Please push to GitHub with `git push origin #{tagname}`."
|
94
|
+
end
|
95
|
+
exit result[2].exitstatus
|
96
|
+
ensure
|
97
|
+
tf.close!
|
98
|
+
end
|
metadata
CHANGED
@@ -1,60 +1,49 @@
|
|
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.
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.7
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Tom Poulton
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
type: :runtime
|
11
|
+
|
12
|
+
date: 2015-03-04 00:00:00 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: "2.0"
|
20
|
+
version_requirements: *id001
|
23
21
|
prerelease: false
|
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
|
37
|
-
version: 1.6.19
|
38
22
|
type: :runtime
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
23
|
+
name: trollop
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
45
29
|
version: 1.6.19
|
30
|
+
version_requirements: *id002
|
31
|
+
prerelease: false
|
32
|
+
type: :runtime
|
33
|
+
name: highline
|
46
34
|
description: Hiera backend for decrypting encrypted yaml properties
|
47
35
|
email:
|
48
|
-
executables:
|
36
|
+
executables:
|
49
37
|
- eyaml
|
50
38
|
extensions: []
|
39
|
+
|
51
40
|
extra_rdoc_files: []
|
52
|
-
|
41
|
+
|
42
|
+
files:
|
53
43
|
- .gitignore
|
54
44
|
- .travis.yml
|
55
45
|
- CHANGES.md
|
56
46
|
- Gemfile
|
57
|
-
- Gemfile.lock
|
58
47
|
- LICENSE.txt
|
59
48
|
- PLUGINS.md
|
60
49
|
- README.md
|
@@ -85,30 +74,33 @@ files:
|
|
85
74
|
- sublime_text/README.md
|
86
75
|
- sublime_text/eyaml.sublime-package
|
87
76
|
- sublime_text/eyaml.syntax_definition.json
|
77
|
+
- tools/git_tag_release.rb
|
88
78
|
- tools/regem.sh
|
89
79
|
homepage: http://github.com/TomPoulton/hiera-eyaml
|
90
|
-
licenses:
|
80
|
+
licenses:
|
91
81
|
- MIT
|
82
|
+
metadata: {}
|
83
|
+
|
92
84
|
post_install_message:
|
93
85
|
rdoc_options: []
|
94
|
-
|
86
|
+
|
87
|
+
require_paths:
|
95
88
|
- lib
|
96
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version:
|
102
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
-
|
104
|
-
|
105
|
-
- - ! '>='
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version: '0'
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- &id003
|
92
|
+
- ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: "0"
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- *id003
|
108
98
|
requirements: []
|
99
|
+
|
109
100
|
rubyforge_project:
|
110
|
-
rubygems_version:
|
101
|
+
rubygems_version: 2.0.14
|
111
102
|
signing_key:
|
112
|
-
specification_version:
|
103
|
+
specification_version: 4
|
113
104
|
summary: OpenSSL Encryption backend for Hiera
|
114
105
|
test_files: []
|
106
|
+
|
data/Gemfile.lock
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: https://rubygems.org/
|
3
|
-
specs:
|
4
|
-
aruba (0.5.3)
|
5
|
-
childprocess (>= 0.3.6)
|
6
|
-
cucumber (>= 1.1.1)
|
7
|
-
rspec-expectations (>= 2.7.0)
|
8
|
-
builder (3.2.2)
|
9
|
-
childprocess (0.3.9)
|
10
|
-
ffi (~> 1.0, >= 1.0.11)
|
11
|
-
cucumber (1.3.10)
|
12
|
-
builder (>= 2.1.2)
|
13
|
-
diff-lcs (>= 1.1.3)
|
14
|
-
gherkin (~> 2.12)
|
15
|
-
multi_json (>= 1.7.5, < 2.0)
|
16
|
-
multi_test (>= 0.0.2)
|
17
|
-
diff-lcs (1.2.5)
|
18
|
-
facter (1.7.3)
|
19
|
-
ffi (1.9.3)
|
20
|
-
gherkin (2.12.2)
|
21
|
-
multi_json (~> 1.3)
|
22
|
-
hiera (1.2.1)
|
23
|
-
json_pure
|
24
|
-
hiera-eyaml-plaintext (0.5)
|
25
|
-
highline (1.6.20)
|
26
|
-
json_pure (1.8.1)
|
27
|
-
multi_json (1.8.2)
|
28
|
-
multi_test (0.0.2)
|
29
|
-
puppet (3.3.2)
|
30
|
-
facter (~> 1.6)
|
31
|
-
hiera (~> 1.0)
|
32
|
-
rgen (~> 0.6.5)
|
33
|
-
rake (10.1.0)
|
34
|
-
rgen (0.6.6)
|
35
|
-
rspec-expectations (2.14.4)
|
36
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
37
|
-
trollop (2.0)
|
38
|
-
|
39
|
-
PLATFORMS
|
40
|
-
ruby
|
41
|
-
|
42
|
-
DEPENDENCIES
|
43
|
-
aruba
|
44
|
-
hiera-eyaml-plaintext
|
45
|
-
highline
|
46
|
-
puppet
|
47
|
-
rake
|
48
|
-
trollop
|