serverkit 0.4.4 → 0.4.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 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