serverkit 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6bc4285bf5a80516d782219e3e1c39e2293bd149
4
- data.tar.gz: e5aa09260d3f3312d59387e4b6d5be6931194a08
3
+ metadata.gz: 6ee2916ff42d02d386e7e2bc58ea31a1df7bbd8c
4
+ data.tar.gz: 2cbeeb2c02e1c8a3fef9dc58a5aa518907b653c1
5
5
  SHA512:
6
- metadata.gz: 4a8adc794c2315262a5bf14713fef1d36d069fe0c7776b64402de888a66bc364b22ee601205f0c13ff5144dd5561cf900959055faba6a8b5d5fb4a7afe658ef9
7
- data.tar.gz: ed16eac1e8ba241522920ec7fd5137063588e1e78fd3993e1ffa9c802f2e3111f7663a3a0d3fb3be14140cbc1bcca406dd337f7fcd0673dfd47342095b1f35c2
6
+ metadata.gz: 1541640d4ec471ea758ef42334d143d0bfdd71c2bb39322527f8c08716901c68bc331ec36f50993dfb399a012931908bb367f0a74e81428a171616ebe6c9aab7
7
+ data.tar.gz: 4a2e87212542457d96cba9407b5c30428a0f87b68957be2193ff9f023dfbd1b880f40cf2b477441a87a5a7be55926e4c608e663d68879ead6965453a73efce1e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.4.5
2
+ - Add group resource
3
+ - Raise KeyError when missing key is referred from ERB
4
+ - Show its file path on error from ERB template
5
+
1
6
  ## 0.4.4
2
7
  - Add template resource
3
8
  - Prevent abstract class from being used as resource type
data/README.md CHANGED
@@ -198,6 +198,7 @@ A resource must have a valid type attribute like:
198
198
  - [directory](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/directory.rb)
199
199
  - [file](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/file.rb)
200
200
  - [git](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/git.rb)
201
+ - [group](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/group.rb)
201
202
  - [nothing](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/nothing.rb)
202
203
  - [package](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/package.rb)
203
204
  - [recipe](https://github.com/r7kamura/serverkit/blob/master/lib/serverkit/resources/recipe.rb)
data/Vagrantfile CHANGED
@@ -7,5 +7,6 @@ Vagrant.configure("2") do |config|
7
7
  config.vm.provision :serverkit do |serverkit_config|
8
8
  serverkit_config.log_level = "DEBUG"
9
9
  serverkit_config.recipe_path = "example/recipe.yml"
10
+ serverkit_config.variables_path = "example/variables.yml"
10
11
  end
11
12
  end
data/example/recipe.yml CHANGED
@@ -16,3 +16,6 @@ resources:
16
16
  - type: template
17
17
  source: example/template.erb
18
18
  destination: /tmp/template_test
19
+ - type: group
20
+ name: wheel
21
+ gid: 10000
@@ -40,6 +40,13 @@ module Serverkit
40
40
  loaded_class.new({})
41
41
  end
42
42
 
43
+ # @return [ERB]
44
+ def erb
45
+ _erb = ERB.new(pathname.read, nil, "-")
46
+ _erb.filename = pathname.to_s
47
+ _erb
48
+ end
49
+
43
50
  # @return [String]
44
51
  def execute
45
52
  `#{pathname}`
@@ -47,7 +54,7 @@ module Serverkit
47
54
 
48
55
  # @return [String]
49
56
  def expand_erb
50
- ERB.new(pathname.read, nil, "-").result(binding_for_erb)
57
+ erb.result(binding_for_erb)
51
58
  end
52
59
 
53
60
  # @return [String]
@@ -3,6 +3,7 @@ require "serverkit/resources/command"
3
3
  require "serverkit/resources/directory"
4
4
  require "serverkit/resources/file"
5
5
  require "serverkit/resources/git"
6
+ require "serverkit/resources/group"
6
7
  require "serverkit/resources/missing"
7
8
  require "serverkit/resources/nothing"
8
9
  require "serverkit/resources/package"
@@ -1,5 +1,4 @@
1
1
  require "serverkit/resources/entry"
2
- require "tempfile"
3
2
 
4
3
  module Serverkit
5
4
  module Resources
@@ -0,0 +1,39 @@
1
+ require "serverkit/resources/base"
2
+
3
+ module Serverkit
4
+ module Resources
5
+ class Group < Base
6
+ attribute :name, required: true, type: String
7
+ attribute :gid, type: Integer
8
+
9
+ # @note Override
10
+ def apply
11
+ if has_correct_group?
12
+ run_command_from_identifier(:add_group, name, gid: gid)
13
+ else
14
+ run_command_from_identifier(:update_group_gid, name, gid)
15
+ end
16
+ end
17
+
18
+ # @note Override
19
+ def check
20
+ has_correct_group? && has_correct_gid?
21
+ end
22
+
23
+ private
24
+
25
+ def has_correct_gid?
26
+ gid.nil? || gid == remote_gid
27
+ end
28
+
29
+ def has_correct_group?
30
+ run_command_from_identifier(:check_group_exists, name)
31
+ end
32
+
33
+ # @return [Integer]
34
+ def remote_gid
35
+ run_command_from_identifier(:get_group_gid, name).stdout.strip.to_i
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,7 +1,6 @@
1
1
  require "erb"
2
2
  require "serverkit/loaders/variables_loader"
3
- require "serverkit/resources/entry"
4
- require "tempfile"
3
+ require "serverkit/resources/remote_file"
5
4
 
6
5
  module Serverkit
7
6
  module Resources
@@ -12,7 +11,14 @@ module Serverkit
12
11
 
13
12
  # @note Override
14
13
  def content
15
- @content ||= ::ERB.new(template_content, nil, "-").result(variables.to_mash.binding)
14
+ @content ||= erb.result(variables.to_mash.binding)
15
+ end
16
+
17
+ # @return [ERB]
18
+ def erb
19
+ _erb = ::ERB.new(template_content, nil, "-")
20
+ _erb.filename = source
21
+ _erb
16
22
  end
17
23
 
18
24
  # @return [String] ERB content
@@ -22,6 +22,16 @@ module Serverkit
22
22
  end
23
23
 
24
24
  class BindableMash < Hashie::Mash
25
+ DEFAULT_PROC = -> (hash, key) do
26
+ raise KeyError, "key not found: #{key.inspect} (perhaps variables are wrong?)"
27
+ end
28
+
29
+ # @note Override to raise KeyError on missing key
30
+ def initialize(*, &block)
31
+ super
32
+ self.default_proc = DEFAULT_PROC
33
+ end
34
+
25
35
  # @note Override visibility from private to public
26
36
  def binding
27
37
  super
@@ -1,3 +1,3 @@
1
1
  module Serverkit
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakamura
@@ -248,6 +248,7 @@ files:
248
248
  - lib/serverkit/resources/entry.rb
249
249
  - lib/serverkit/resources/file.rb
250
250
  - lib/serverkit/resources/git.rb
251
+ - lib/serverkit/resources/group.rb
251
252
  - lib/serverkit/resources/missing.rb
252
253
  - lib/serverkit/resources/nothing.rb
253
254
  - lib/serverkit/resources/package.rb