serverkit 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/CHANGELOG.md +4 -0
- data/README.md +3 -1
- data/example/recipes/{recipe.yml.erb → dotfiles.yml.erb} +0 -12
- data/example/recipes/homebrew.yml +7 -0
- data/example/recipes/homebrew_cask.yml +7 -0
- data/example/recipes/recipe.json +10 -27
- data/example/recipes/recipe.yml +9 -20
- data/lib/serverkit/errors/attribute_validation_error.rb +20 -0
- data/lib/serverkit/errors/{invalid_recipe_type.rb → invalid_recipe_type_error.rb} +1 -1
- data/lib/serverkit/errors/{invalid_resources_type.rb → invalid_resources_type_error.rb} +1 -1
- data/lib/serverkit/errors/unknown_resource_type_error.rb +17 -0
- data/lib/serverkit/loaders/base_loader.rb +17 -11
- data/lib/serverkit/loaders/recipe_loader.rb +10 -0
- data/lib/serverkit/recipe.rb +14 -26
- data/lib/serverkit/resource_builder.rb +51 -0
- data/lib/serverkit/resources/base.rb +31 -1
- data/lib/serverkit/resources/recipe.rb +21 -0
- data/lib/serverkit/resources/unknown.rb +13 -0
- data/lib/serverkit/variables.rb +1 -1
- data/lib/serverkit/version.rb +1 -1
- metadata +12 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40d5fe026687af52454bb4f3507ee76df5c24892
|
4
|
+
data.tar.gz: f5ff7864e5a727ee33b68bc66624b9bc338d1a6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fe05e953601daa2a7dbaa05151d4142e09f8ef588af30e9e600efe3dd179f45843dff9aae5f6c7dd69e0a09b0eb65c950b748f67d2c27ca5971c3453ca1b8cd
|
7
|
+
data.tar.gz: 198e7ee4550b9aa16ff52a57056073612be2dcd00cd85cad0e0545b62881591343356312e84b2abe0def220b7311b893dd8cf3279ac3e619a5e731a5263d4df2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -35,6 +35,7 @@ serverkit apply --recipe=recipe.json.erb --variables=variables.json
|
|
35
35
|
serverkit apply --recipe=recipe.json.erb --variables=variables.json.erb
|
36
36
|
serverkit apply --recipe=recipe.json.erb --variables=variables.yml
|
37
37
|
serverkit apply --recipe=recipe.json.erb --variables=variables.yml.erb
|
38
|
+
serverkit apply --recipe=recipe.json.erb --variables=variables/
|
38
39
|
serverkit apply --recipe=recipe.yml
|
39
40
|
serverkit apply --recipe=recipe.yml.erb
|
40
41
|
serverkit apply --recipe=recipes/
|
@@ -82,9 +83,10 @@ A resource must have a type property. Currently the following types are availabl
|
|
82
83
|
|
83
84
|
- file
|
84
85
|
- git
|
85
|
-
- homebrew_cask
|
86
86
|
- homebrew
|
87
|
+
- homebrew_cask
|
87
88
|
- package
|
89
|
+
- recipe
|
88
90
|
- service
|
89
91
|
- symlink
|
90
92
|
|
@@ -1,16 +1,4 @@
|
|
1
1
|
resources:
|
2
|
-
- id: install_mysql
|
3
|
-
type: homebrew
|
4
|
-
name: mysql
|
5
|
-
- id: install_redis
|
6
|
-
type: homebrew
|
7
|
-
name: redis
|
8
|
-
- id: install_licecap
|
9
|
-
type: homebrew_cask
|
10
|
-
name: licecap
|
11
|
-
- id: install_alfred
|
12
|
-
type: homebrew_cask
|
13
|
-
name: alfred
|
14
2
|
- id: clone_dotfiles
|
15
3
|
type: git
|
16
4
|
repository: git@github.com:<%= variables["dotfiles_github_repository"] %>.git
|
data/example/recipes/recipe.json
CHANGED
@@ -1,36 +1,19 @@
|
|
1
1
|
{
|
2
2
|
"resources": [
|
3
3
|
{
|
4
|
-
"id": "
|
5
|
-
"type": "
|
6
|
-
"
|
4
|
+
"id": "install_homebrew_packages",
|
5
|
+
"type": "recipe",
|
6
|
+
"path": "example/recipes/homebrew.yml"
|
7
7
|
},
|
8
8
|
{
|
9
|
-
"id": "
|
10
|
-
"type": "
|
11
|
-
"
|
9
|
+
"id": "install_homebrew_cask_packages",
|
10
|
+
"type": "recipe",
|
11
|
+
"path": "example/recipes/homebrew_cask.yml"
|
12
12
|
},
|
13
13
|
{
|
14
|
-
"id": "
|
15
|
-
"type": "
|
16
|
-
"
|
17
|
-
},
|
18
|
-
{
|
19
|
-
"id": "install_alfred",
|
20
|
-
"type": "homebrew_cask",
|
21
|
-
"name": "alfred"
|
22
|
-
},
|
23
|
-
{
|
24
|
-
"id": "clone_dotfiles",
|
25
|
-
"type": "git",
|
26
|
-
"repository": "git@github.com:r7kamura/dotfiles.git",
|
27
|
-
"path": "/Users/r7kamura/src/github.com/r7kamura/dotfiles"
|
28
|
-
},
|
29
|
-
{
|
30
|
-
"id": "symlink_zshrc",
|
31
|
-
"type": "symlink",
|
32
|
-
"source": "/Users/r7kamura/.zshrc",
|
33
|
-
"destination": "/Users/r7kamura/src/github.com/r7kamura/dotfiles/linked/.zshrc"
|
14
|
+
"id": "install_dotfiles",
|
15
|
+
"type": "recipe",
|
16
|
+
"path": "example/recipes/dotfiles.yml.erb"
|
34
17
|
}
|
35
18
|
]
|
36
|
-
}
|
19
|
+
}
|
data/example/recipes/recipe.yml
CHANGED
@@ -1,21 +1,10 @@
|
|
1
1
|
resources:
|
2
|
-
- id:
|
3
|
-
type:
|
4
|
-
|
5
|
-
- id:
|
6
|
-
type:
|
7
|
-
|
8
|
-
- id:
|
9
|
-
type:
|
10
|
-
|
11
|
-
- id: install_alfred
|
12
|
-
type: homebrew_cask
|
13
|
-
name: alfred
|
14
|
-
- id: clone_dotfiles
|
15
|
-
type: git
|
16
|
-
repository: git@github.com:r7kamura/dotfiles.git
|
17
|
-
path: /Users/r7kamura/src/github.com/r7kamura/dotfiles
|
18
|
-
- id: symlink_zshrc
|
19
|
-
type: symlink
|
20
|
-
source: /Users/r7kamura/.zshrc
|
21
|
-
destination: /Users/r7kamura/src/github.com/r7kamura/dotfiles/linked/.zshrc
|
2
|
+
- id: install_homebrew_packages
|
3
|
+
type: recipe
|
4
|
+
path: example/recipes/homebrew.yml
|
5
|
+
- id: install_homebrew_cask_packages
|
6
|
+
type: recipe
|
7
|
+
path: example/recipes/homebrew_cask.yml
|
8
|
+
- id: install_dotfiles
|
9
|
+
type: recipe
|
10
|
+
path: example/recipes/dotfiles.yml.erb
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "serverkit/errors/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Errors
|
5
|
+
class AttributeValidationError < Base
|
6
|
+
# @param [Serverkit::Resources::Base] resource
|
7
|
+
# @param [String] validation_error_message
|
8
|
+
def initialize(resource, attribute_name, validation_error_message)
|
9
|
+
@attribute_name = attribute_name
|
10
|
+
@resource = resource
|
11
|
+
@validation_error_message = validation_error_message
|
12
|
+
end
|
13
|
+
|
14
|
+
# @return [String]
|
15
|
+
def to_s
|
16
|
+
"#{@attribute_name} attribute #{@validation_error_message} in #{@resource.type} resource"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "serverkit/errors/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Errors
|
5
|
+
class UnknownResourceTypeError < Base
|
6
|
+
# @param [String] type
|
7
|
+
def initialize(type)
|
8
|
+
@type = type
|
9
|
+
end
|
10
|
+
|
11
|
+
# @return [String]
|
12
|
+
def to_s
|
13
|
+
"Unknown `#{@type}` resource type"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -15,7 +15,6 @@ module Serverkit
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# @todo Rescue Error::ENOENT error
|
18
|
-
# @return [Serverkit::Recipe]
|
19
18
|
def load
|
20
19
|
case
|
21
20
|
when has_directory_path?
|
@@ -23,7 +22,7 @@ module Serverkit
|
|
23
22
|
when has_erb_path?
|
24
23
|
load_from_erb
|
25
24
|
else
|
26
|
-
|
25
|
+
load_from_data
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
@@ -34,6 +33,16 @@ module Serverkit
|
|
34
33
|
TOPLEVEL_BINDING
|
35
34
|
end
|
36
35
|
|
36
|
+
# @note For override
|
37
|
+
def create_empty_loadable
|
38
|
+
loaded_class.new({})
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [String]
|
42
|
+
def execute
|
43
|
+
`#{pathname}`
|
44
|
+
end
|
45
|
+
|
37
46
|
# @return [String]
|
38
47
|
def expand_erb
|
39
48
|
ERB.new(pathname.read).result(binding_for_erb)
|
@@ -54,11 +63,6 @@ module Serverkit
|
|
54
63
|
end
|
55
64
|
end
|
56
65
|
|
57
|
-
# @return [String]
|
58
|
-
def execute
|
59
|
-
`#{pathname}`
|
60
|
-
end
|
61
|
-
|
62
66
|
def has_directory_path?
|
63
67
|
pathname.directory?
|
64
68
|
end
|
@@ -89,17 +93,19 @@ module Serverkit
|
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
92
|
-
|
96
|
+
def load_from_data
|
97
|
+
loaded_class.new(load_data)
|
98
|
+
end
|
99
|
+
|
93
100
|
def load_from_directory
|
94
|
-
loads_from_directory.inject(
|
101
|
+
loads_from_directory.inject(create_empty_loadable, :merge)
|
95
102
|
end
|
96
103
|
|
97
|
-
# @return [Serverkit::Recipe]
|
98
104
|
def load_from_erb
|
99
105
|
self.class.new(expanded_erb_tempfile.path).load
|
100
106
|
end
|
101
107
|
|
102
|
-
# @return [Array
|
108
|
+
# @return [Array]
|
103
109
|
def loads_from_directory
|
104
110
|
Dir.glob(pathname.join("*")).sort.flat_map do |path|
|
105
111
|
self.class.new(path).load
|
@@ -21,10 +21,20 @@ module Serverkit
|
|
21
21
|
ErbBindingContext.new(variables_data).binding
|
22
22
|
end
|
23
23
|
|
24
|
+
# @note Override to pass @variables_path
|
25
|
+
def create_empty_loadable
|
26
|
+
loaded_class.new({}, @variables_path)
|
27
|
+
end
|
28
|
+
|
24
29
|
def has_variables_path?
|
25
30
|
!@variables_path.nil?
|
26
31
|
end
|
27
32
|
|
33
|
+
# @note Override to pass @variables_path
|
34
|
+
def load_from_data
|
35
|
+
loaded_class.new(load_data, @variables_path)
|
36
|
+
end
|
37
|
+
|
28
38
|
# @return [Serverkit::Variables]
|
29
39
|
def load_variables
|
30
40
|
Loaders::VariablesLoader.new(@variables_path).load
|
data/lib/serverkit/recipe.rb
CHANGED
@@ -1,21 +1,17 @@
|
|
1
1
|
require "active_support/core_ext/hash/deep_merge"
|
2
|
-
require "
|
3
|
-
require "serverkit/errors/
|
4
|
-
require "serverkit/
|
5
|
-
require "serverkit/resources/file"
|
6
|
-
require "serverkit/resources/git"
|
7
|
-
require "serverkit/resources/homebrew"
|
8
|
-
require "serverkit/resources/homebrew_cask"
|
9
|
-
require "serverkit/resources/service"
|
10
|
-
require "serverkit/resources/symlink"
|
2
|
+
require "serverkit/errors/invalid_recipe_type_error"
|
3
|
+
require "serverkit/errors/invalid_resources_type_error"
|
4
|
+
require "serverkit/resource_builder"
|
11
5
|
|
12
6
|
module Serverkit
|
13
7
|
class Recipe
|
14
|
-
attr_reader :recipe_data
|
8
|
+
attr_reader :recipe_data, :variables_path
|
15
9
|
|
16
10
|
# @param [Hash] recipe_data
|
17
|
-
|
11
|
+
# @param [String, nil] variables_path Used for recipe resource to render ERB template
|
12
|
+
def initialize(recipe_data, variables_path = nil)
|
18
13
|
@recipe_data = recipe_data
|
14
|
+
@variables_path = variables_path
|
19
15
|
end
|
20
16
|
|
21
17
|
# @return [Array<Serverkit::Errors::Base>]
|
@@ -32,11 +28,6 @@ module Serverkit
|
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
35
|
-
# @return [Array<String>]
|
36
|
-
def hosts
|
37
|
-
@recipe_data["hosts"]
|
38
|
-
end
|
39
|
-
|
40
31
|
# @param [Serverkit::Recipe] recipe
|
41
32
|
# @return [Serverkit::Recipe]
|
42
33
|
def merge(recipe)
|
@@ -51,11 +42,11 @@ module Serverkit
|
|
51
42
|
)
|
52
43
|
end
|
53
44
|
|
45
|
+
# @note recipe resource will be expanded into resources defined in its recipe
|
54
46
|
# @return [Array<Serverkit::Resources::Base>]
|
55
|
-
# @todo Delegate to resource builder
|
56
47
|
def resources
|
57
|
-
@resources ||= resources_property.
|
58
|
-
|
48
|
+
@resources ||= resources_property.flat_map do |attributes|
|
49
|
+
ResourceBuilder.new(self, attributes).build.to_a
|
59
50
|
end
|
60
51
|
end
|
61
52
|
|
@@ -67,20 +58,17 @@ module Serverkit
|
|
67
58
|
|
68
59
|
# @return [Array<Serverkit::Errors::Base>]
|
69
60
|
def errors_for_invalid_typed_recipe_data
|
70
|
-
[Errors::
|
61
|
+
[Errors::InvalidRecipeTypeError.new(@recipe_data.class)]
|
71
62
|
end
|
72
63
|
|
73
64
|
# @return [Array<Serverkit::Errors::Base>]
|
74
65
|
def errors_for_invalid_typed_resources_property
|
75
|
-
[Errors::
|
66
|
+
[Errors::InvalidResourcesTypeError.new(resources_property.class)]
|
76
67
|
end
|
77
68
|
|
78
|
-
# @return [Array<Serverkit::Errors::
|
69
|
+
# @return [Array<Serverkit::Errors::AttributeValidationError>]
|
79
70
|
def errors_in_resources
|
80
|
-
resources.flat_map
|
81
|
-
resource.validate
|
82
|
-
resource.errors.to_a
|
83
|
-
end
|
71
|
+
resources.flat_map(&:all_errors)
|
84
72
|
end
|
85
73
|
|
86
74
|
def has_valid_typed_resources_property?
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require "active_support/core_ext/string/inflections"
|
2
|
+
require "serverkit/resources/file"
|
3
|
+
require "serverkit/resources/git"
|
4
|
+
require "serverkit/resources/homebrew_cask"
|
5
|
+
require "serverkit/resources/homebrew"
|
6
|
+
require "serverkit/resources/recipe"
|
7
|
+
require "serverkit/resources/service"
|
8
|
+
require "serverkit/resources/symlink"
|
9
|
+
require "serverkit/resources/unknown"
|
10
|
+
|
11
|
+
module Serverkit
|
12
|
+
class ResourceBuilder
|
13
|
+
# @param [Serverkit::Recipe] recipe
|
14
|
+
# @param [Hash] attributes
|
15
|
+
def initialize(recipe, attributes)
|
16
|
+
@attributes = attributes
|
17
|
+
@recipe = recipe
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Serverkit::Resources::Base]
|
21
|
+
def build
|
22
|
+
resource_class.new(@recipe, @attributes)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def has_known_type?
|
28
|
+
Resources.constants.map(&:to_s).include?(resource_class_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
# @return [Class]
|
32
|
+
def resource_class
|
33
|
+
if has_known_type?
|
34
|
+
Resources.const_get(resource_class_name, false)
|
35
|
+
else
|
36
|
+
Resources::Unknown
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String] (e.g. "File", "Symlink")
|
41
|
+
def resource_class_name
|
42
|
+
type.camelize
|
43
|
+
end
|
44
|
+
|
45
|
+
# @note Expected to return String in normal case
|
46
|
+
# @return [Object] (e.g. "file", "symlink")
|
47
|
+
def type
|
48
|
+
@attributes["type"]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "active_model"
|
2
2
|
require "readable_validator"
|
3
3
|
require "required_validator"
|
4
|
+
require "serverkit/errors/attribute_validation_error"
|
4
5
|
require "type_validator"
|
5
6
|
|
6
7
|
module Serverkit
|
@@ -21,15 +22,44 @@ module Serverkit
|
|
21
22
|
|
22
23
|
attr_accessor :backend
|
23
24
|
|
25
|
+
attr_reader :recipe
|
26
|
+
|
24
27
|
attribute :id, required: true, type: String
|
25
28
|
|
29
|
+
# @param [Serverkit::Recipe] recipe
|
26
30
|
# @param [Hash] attributes
|
27
|
-
def initialize(attributes)
|
31
|
+
def initialize(recipe, attributes)
|
28
32
|
@attributes = attributes
|
33
|
+
@recipe = recipe
|
34
|
+
end
|
35
|
+
|
36
|
+
# @note For override use
|
37
|
+
# @return [Array<Serverkit::Errors::Base>]
|
38
|
+
def all_errors
|
39
|
+
attribute_validation_errors
|
40
|
+
end
|
41
|
+
|
42
|
+
# @note recipe resource will override to replace itself with multiple resources
|
43
|
+
# @return [Array<Serverkit::Resources::Base>]
|
44
|
+
def to_a
|
45
|
+
[self]
|
46
|
+
end
|
47
|
+
|
48
|
+
# @return [String]
|
49
|
+
def type
|
50
|
+
@attributes["type"]
|
29
51
|
end
|
30
52
|
|
31
53
|
private
|
32
54
|
|
55
|
+
# @return [Array<Serverkit::Errors::AttributeValidationError>]
|
56
|
+
def attribute_validation_errors
|
57
|
+
validate
|
58
|
+
errors.map do |attribute_name, message|
|
59
|
+
Serverkit::Errors::AttributeValidationError.new(self, attribute_name, message)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
33
63
|
# @return [true, false]
|
34
64
|
def check_command(*args)
|
35
65
|
run_command(*args).success?
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "serverkit/resources/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Resources
|
5
|
+
class Recipe < Base
|
6
|
+
attribute :path, readable: true, required: true, type: String
|
7
|
+
|
8
|
+
# @note Override
|
9
|
+
def to_a
|
10
|
+
loaded_recipe.resources
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
# @return [Serverkit::Recipe] Recipe loaded from given path
|
16
|
+
def loaded_recipe
|
17
|
+
@loaded_recipe ||= Loaders::RecipeLoader.new(path, variables_path: recipe.variables_path).load
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "serverkit/errors/unknown_resource_type_error"
|
2
|
+
require "serverkit/resources/base"
|
3
|
+
|
4
|
+
module Serverkit
|
5
|
+
module Resources
|
6
|
+
class Unknown < Base
|
7
|
+
# @return [Array<Serverkit::Errors::UnknownResourceTypeError>]
|
8
|
+
def all_errors
|
9
|
+
[Errors::UnknownResourceTypeError.new(type)]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/serverkit/variables.rb
CHANGED
data/lib/serverkit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverkit
|
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
|
- Ryo Nakamura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -154,10 +154,12 @@ files:
|
|
154
154
|
- README.md
|
155
155
|
- Rakefile
|
156
156
|
- bin/serverkit
|
157
|
+
- example/recipes/dotfiles.yml.erb
|
158
|
+
- example/recipes/homebrew.yml
|
159
|
+
- example/recipes/homebrew_cask.yml
|
157
160
|
- example/recipes/recipe.json
|
158
161
|
- example/recipes/recipe.rb
|
159
162
|
- example/recipes/recipe.yml
|
160
|
-
- example/recipes/recipe.yml.erb
|
161
163
|
- example/variables/variables.yml
|
162
164
|
- lib/readable_validator.rb
|
163
165
|
- lib/required_validator.rb
|
@@ -167,21 +169,26 @@ files:
|
|
167
169
|
- lib/serverkit/actions/check.rb
|
168
170
|
- lib/serverkit/actions/validate.rb
|
169
171
|
- lib/serverkit/command.rb
|
172
|
+
- lib/serverkit/errors/attribute_validation_error.rb
|
170
173
|
- lib/serverkit/errors/base.rb
|
171
|
-
- lib/serverkit/errors/
|
172
|
-
- lib/serverkit/errors/
|
174
|
+
- lib/serverkit/errors/invalid_recipe_type_error.rb
|
175
|
+
- lib/serverkit/errors/invalid_resources_type_error.rb
|
176
|
+
- lib/serverkit/errors/unknown_resource_type_error.rb
|
173
177
|
- lib/serverkit/loaders/base_loader.rb
|
174
178
|
- lib/serverkit/loaders/recipe_loader.rb
|
175
179
|
- lib/serverkit/loaders/variables_loader.rb
|
176
180
|
- lib/serverkit/recipe.rb
|
181
|
+
- lib/serverkit/resource_builder.rb
|
177
182
|
- lib/serverkit/resources/base.rb
|
178
183
|
- lib/serverkit/resources/file.rb
|
179
184
|
- lib/serverkit/resources/git.rb
|
180
185
|
- lib/serverkit/resources/homebrew.rb
|
181
186
|
- lib/serverkit/resources/homebrew_cask.rb
|
182
187
|
- lib/serverkit/resources/package.rb
|
188
|
+
- lib/serverkit/resources/recipe.rb
|
183
189
|
- lib/serverkit/resources/service.rb
|
184
190
|
- lib/serverkit/resources/symlink.rb
|
191
|
+
- lib/serverkit/resources/unknown.rb
|
185
192
|
- lib/serverkit/variables.rb
|
186
193
|
- lib/serverkit/version.rb
|
187
194
|
- lib/type_validator.rb
|