tiller 0.7.8 → 0.7.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/tiller +1 -1
- data/lib/tiller/data/external_file.rb +56 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbefc0c67cf35c7423c6305a42b5d54d6f22c073
|
4
|
+
data.tar.gz: 05f48fecc05a436549e0b133331de3eddb05517b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc2d6e760b5ceb022b421f09aea7fc90ea68490184a07ea0e24c4f6fa5a0a42d25ca24545ea226cd21df43168d32e8256c5b329aee22773dbf34f4f108842739
|
7
|
+
data.tar.gz: 9eb6ea7b23a1fbecd87265aa7389fd2daae9a47e86fbda398ba066af956900324215e5b4cc2ab93ed49e09b032754b48dfa3b1e0e7b4484da58d1987a7b045d6
|
data/bin/tiller
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'pp'
|
2
|
+
require 'yaml'
|
3
|
+
require 'json'
|
4
|
+
require 'tiller/util'
|
5
|
+
|
6
|
+
class ExternalFileDataSource < Tiller::DataSource
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@merged_values = Hash.new
|
10
|
+
if @config.has_key?('external_files')
|
11
|
+
files = @config['external_files']
|
12
|
+
files.each do |file|
|
13
|
+
@merged_values.merge!(parse_file(file)) do |key, old, new|
|
14
|
+
warn_merge(key, old, new, 'external file data', file)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def global_values
|
21
|
+
return @merged_values
|
22
|
+
end
|
23
|
+
|
24
|
+
def parse_file(filename)
|
25
|
+
raise("External file '#{filename}' could not be loaded") unless File.file?(filename)
|
26
|
+
@log.debug("#{self} : Loading #{filename}")
|
27
|
+
parse = nil
|
28
|
+
|
29
|
+
# First try to load it as JSON
|
30
|
+
if ! parse
|
31
|
+
begin
|
32
|
+
parse = JSON.parse(File.read(filename))
|
33
|
+
@log.debug("#{self} : #{filename} is in JSON format")
|
34
|
+
rescue JSON::ParserError
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Then YAML
|
39
|
+
if ! parse
|
40
|
+
begin
|
41
|
+
parse = YAML.load(File.read(filename))
|
42
|
+
@log.debug("#{self} : #{filename} is in YAML format")
|
43
|
+
rescue Psych::SyntaxError
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Unknown / unparsable format, bail out...
|
48
|
+
if ! parse
|
49
|
+
raise("External file '#{filename}' is in an unknown format")
|
50
|
+
end
|
51
|
+
|
52
|
+
return parse
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Dastmalchi-Round
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A tool to create configuration files from a variety of sources, particularly
|
14
14
|
useful for Docker containers. See https://github.com/markround/tiller for examples
|
@@ -32,6 +32,7 @@ files:
|
|
32
32
|
- lib/tiller/data/defaults.rb
|
33
33
|
- lib/tiller/data/environment.rb
|
34
34
|
- lib/tiller/data/environment_json.rb
|
35
|
+
- lib/tiller/data/external_file.rb
|
35
36
|
- lib/tiller/data/file.rb
|
36
37
|
- lib/tiller/data/http.rb
|
37
38
|
- lib/tiller/data/random.rb
|