tiller 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/tiller +7 -2
- data/lib/tiller/data/file.rb +3 -3
- data/lib/tiller/datasource.rb +4 -2
- data/lib/tiller/template/file.rb +4 -4
- data/lib/tiller/templatesource.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4ca53cc681827456c07f791d7d58e558014cc7e
|
4
|
+
data.tar.gz: cae787837375bc7ba3b54eaf784e90b33c762385
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c75b645fd91e5225352848b1443eaf2dbee36d8d352d5bab64e3a46fc2d098bbbdc00abce8bfd57a6895cb9840517e4bfb5688ddd2c3596bde1a1c51c849d197
|
7
|
+
data.tar.gz: d0a19d94b88af5e848f5d53147aeb50d3a49a788c6b567e536cc3e54bdbaf9ea418e89c6750dbf586c5157ab26e57a62154ff8bbce83fefec839a58c2eda5e37
|
data/bin/tiller
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# Named from the first ship-building (Docker) related term I could find that didn't have an existing gem named after it!
|
4
4
|
# Mark Round <github@markround.com>
|
5
5
|
|
6
|
-
VERSION='0.0.
|
6
|
+
VERSION='0.0.5'
|
7
7
|
|
8
8
|
require 'erb'
|
9
9
|
require 'ostruct'
|
@@ -100,6 +100,10 @@ module Tiller
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
+
# If our data source returned no values (e.g. we don't build this template for this environment)
|
104
|
+
# We move onto the next one.
|
105
|
+
next if target_values.empty?
|
106
|
+
|
103
107
|
# Now, we build the template
|
104
108
|
tiller = values.merge(global_values) do |key, old, new|
|
105
109
|
warn_merge(key, old, new, 'global and local', 'merged configuration')
|
@@ -120,7 +124,8 @@ module Tiller
|
|
120
124
|
# Set permissions if we are running as root
|
121
125
|
if Process::Sys.geteuid == 0 then
|
122
126
|
puts "Setting ownership/permissions on #{target_values['target']}"
|
123
|
-
FileUtils.chmod(target_values['perms'], target_values['target']) if target_values.has_key('perms')
|
127
|
+
FileUtils.chmod(target_values['perms'], target_values['target']) if target_values.has_key?('perms')
|
128
|
+
# Don't need to check for the presence of these, as they're ignored if null.
|
124
129
|
FileUtils.chown(target_values['user'], target_values['group'], target_values['target'])
|
125
130
|
else
|
126
131
|
puts "Not running as root, so not setting ownership/permissions on #{target_values['target']}"
|
data/lib/tiller/data/file.rb
CHANGED
@@ -9,16 +9,16 @@ class FileDataSource < Tiller::DataSource
|
|
9
9
|
# We don't provide any global values, just ones specific to a template.
|
10
10
|
def initialize(config)
|
11
11
|
super
|
12
|
-
env_file = File.join(@@config[:tiller_base]
|
12
|
+
env_file = File.join(@@config[:tiller_base], "environments", "#{@@config[:environment]}.yaml")
|
13
13
|
@config_hash = YAML::load(open(env_file))
|
14
14
|
end
|
15
15
|
|
16
16
|
def values(template_name)
|
17
|
-
@config_hash[template_name]['config']
|
17
|
+
@config_hash.has_key?(template_name) ? @config_hash[template_name]['config'] : Hash.new
|
18
18
|
end
|
19
19
|
|
20
20
|
def target_values(template_name)
|
21
|
-
@config_hash[template_name]
|
21
|
+
@config_hash.has_key?(template_name) ? @config_hash[template_name]['config'] : Hash.new
|
22
22
|
end
|
23
23
|
|
24
24
|
end
|
data/lib/tiller/datasource.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
# about a template, e.g. target location, permissions, owner and so on)
|
5
5
|
|
6
6
|
module Tiller
|
7
|
-
|
7
|
+
class DataSource
|
8
8
|
|
9
9
|
# All subclasses get this, which is a hash containing tiller_base, tiller_lib and environment.
|
10
10
|
@@config = Array.new
|
@@ -16,6 +16,7 @@ module Tiller
|
|
16
16
|
|
17
17
|
attr_reader :global_values
|
18
18
|
|
19
|
+
# We should always return a hash; if we have no data for the given template, just return an empty hash.
|
19
20
|
def values(template_name)
|
20
21
|
Hash.new
|
21
22
|
end
|
@@ -27,6 +28,7 @@ module Tiller
|
|
27
28
|
# 'group' => 'root',
|
28
29
|
# 'perms' => '0644'
|
29
30
|
#}
|
31
|
+
# Again, we should always return a hash; if we have no data for the given template, just return an empty hash.
|
30
32
|
def target_values(template_name)
|
31
33
|
Hash.new
|
32
34
|
end
|
@@ -35,5 +37,5 @@ module Tiller
|
|
35
37
|
"ping!" + @@config.to_s
|
36
38
|
end
|
37
39
|
|
38
|
-
|
40
|
+
end
|
39
41
|
end
|
data/lib/tiller/template/file.rb
CHANGED
@@ -5,20 +5,20 @@ class FileTemplateSource < Tiller::TemplateSource
|
|
5
5
|
|
6
6
|
def initialize(config)
|
7
7
|
super
|
8
|
-
@template_dir = File.join(@@config[:tiller_base]
|
8
|
+
@template_dir = File.join(@@config[:tiller_base], 'templates/')
|
9
9
|
end
|
10
10
|
|
11
11
|
# Simply return a list of all the templates in the $tiller_base/templates directory
|
12
12
|
# With the preceeding directory path stripped off
|
13
13
|
def templates
|
14
|
-
Dir.glob(File.join(@template_dir
|
15
|
-
t.sub!(@template_dir
|
14
|
+
Dir.glob(File.join(@template_dir, '**', '*.erb')).each do |t|
|
15
|
+
t.sub!(@template_dir, '')
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
# Just open and return the file
|
20
20
|
def template(template_name)
|
21
|
-
open(File.join(@template_dir
|
21
|
+
open(File.join(@template_dir, template_name)).read
|
22
22
|
end
|
23
23
|
|
24
24
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
# Subclasses provide templates (an array), and individual template contents (a string containing ERB data)
|
3
3
|
|
4
4
|
module Tiller
|
5
|
-
|
5
|
+
class TemplateSource
|
6
6
|
|
7
7
|
# All subclasses get this, which is a hash containing tiller_base, tiller_lib and environment.
|
8
8
|
@@config = Array.new
|
@@ -22,5 +22,5 @@ module Tiller
|
|
22
22
|
def ping
|
23
23
|
"ping!" + @@config.to_s
|
24
24
|
end
|
25
|
-
|
25
|
+
end
|
26
26
|
end
|
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.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Round
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A tool to create configuration files in Docker containers from a variety
|
14
14
|
of sources. See https://github.com/markround/tiller for examples and documentation.
|