serverkit-rbenv 0.1.1 → 0.2.0
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 +3 -0
- data/README.md +29 -0
- data/lib/serverkit/rbenv.rb +3 -0
- data/lib/serverkit/rbenv/version.rb +1 -1
- data/lib/serverkit/resources/rbenv_profile.rb +42 -0
- data/lib/serverkit/resources/rbenv_rbenv.rb +32 -0
- data/lib/serverkit/resources/rbenv_ruby.rb +27 -1
- data/lib/serverkit/resources/rbenv_ruby_build.rb +32 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ac1ebbe4974fb298789d268f2fb0c8bfd3cdb58
|
4
|
+
data.tar.gz: 0068580d3d8abf4e6b7b3a27fb5319915c7ecc9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2a96c9b4d97eff91bd48f02f1f9dd7a70b6a00e8444abfce435d85d84a7009734e1c049f9d8730e7f9e4b854af8f21bbcadc6ee1cbef78319c5ccd8353d2877
|
7
|
+
data.tar.gz: 500fa14f684f34c76519c11f38c0328a004c03e0e70d465e2408ab97447f6855213c0541bcc0b53021f3542a0804ec8c28e749e8edbfe9f40fb3defa84bf4787
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -20,6 +20,9 @@ Make sure the specified version of Ruby is installed with rbenv.
|
|
20
20
|
- version - Installed Ruby version (required) (e.g. `"2.2.0"`)
|
21
21
|
- global - Pass true to make it global (default: `false`)
|
22
22
|
- rbenv_executable_path - Path to rbenv executable (default: `"rbenv"`)
|
23
|
+
- user - user name (required if dependencies is true)
|
24
|
+
- dependencies - Pass true to install rbenv, ruby-build, their dependencies, profile script
|
25
|
+
- profile_path - Where to append init script for rbenv (required if dependencies is true)
|
23
26
|
|
24
27
|
#### Example
|
25
28
|
```yml
|
@@ -37,3 +40,29 @@ Install denpendent packages to install rbenv.
|
|
37
40
|
resources:
|
38
41
|
- type: rbenv_dependent_packages
|
39
42
|
```
|
43
|
+
|
44
|
+
### rbenv_rbenv
|
45
|
+
Install rbenv into home directory.
|
46
|
+
|
47
|
+
#### Attributes
|
48
|
+
- user - user name (required)
|
49
|
+
|
50
|
+
#### Example
|
51
|
+
```yml
|
52
|
+
resources:
|
53
|
+
- type: rbenv_rbenv
|
54
|
+
user: foo
|
55
|
+
```
|
56
|
+
|
57
|
+
### rbenv_ruby
|
58
|
+
Install ruby-build into home directory.
|
59
|
+
|
60
|
+
#### Attributes
|
61
|
+
- user - user name (required)
|
62
|
+
|
63
|
+
#### Example
|
64
|
+
```yml
|
65
|
+
resources:
|
66
|
+
- type: rbenv_ruby_build
|
67
|
+
user: foo
|
68
|
+
```
|
data/lib/serverkit/rbenv.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
1
|
require "serverkit/rbenv/version"
|
2
2
|
require "serverkit/resources/rbenv_dependent_packages"
|
3
|
+
require "serverkit/resources/rbenv_profile"
|
4
|
+
require "serverkit/resources/rbenv_rbenv"
|
3
5
|
require "serverkit/resources/rbenv_ruby"
|
6
|
+
require "serverkit/resources/rbenv_ruby_build"
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "serverkit/resources/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Resources
|
5
|
+
class RbenvProfile < Base
|
6
|
+
attribute :profile_path, required: true, type: String
|
7
|
+
|
8
|
+
# @note Override
|
9
|
+
def apply
|
10
|
+
build_resources.each(&:run_apply)
|
11
|
+
end
|
12
|
+
|
13
|
+
# @note Override
|
14
|
+
def check
|
15
|
+
build_resources.all?(&:check)
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# @return [Array<Serverkit::Resources::Line>]
|
21
|
+
def build_resources
|
22
|
+
lines.map do |line|
|
23
|
+
resource = Serverkit::Resources::Line.new(
|
24
|
+
@recipe,
|
25
|
+
"line" => line,
|
26
|
+
"path" => profile_path,
|
27
|
+
)
|
28
|
+
resource.backend = backend
|
29
|
+
resource
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# @return [Array<String>]
|
34
|
+
def lines
|
35
|
+
[
|
36
|
+
%<export PATH="$HOME/.rbenv/bin:$PATH">,
|
37
|
+
%<eval "$(rbenv init -)">,
|
38
|
+
]
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "serverkit/resources/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Resources
|
5
|
+
class RbenvRbenv < Base
|
6
|
+
attribute :user, required: true, type: String
|
7
|
+
|
8
|
+
# @note Override
|
9
|
+
def apply
|
10
|
+
build_resource.run_apply
|
11
|
+
end
|
12
|
+
|
13
|
+
# @note Override
|
14
|
+
def check
|
15
|
+
build_resource.check
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def build_resource
|
21
|
+
resource = Serverkit::Resources::Git.new(
|
22
|
+
@recipe,
|
23
|
+
"path" => "/home/#{user}/.rbenv",
|
24
|
+
"repository" => "https://github.com/sstephenson/rbenv.git",
|
25
|
+
"user" => user,
|
26
|
+
)
|
27
|
+
resource.backend = backend
|
28
|
+
resource
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -6,13 +6,18 @@ module Serverkit
|
|
6
6
|
DEFAULT_GLOBAL = false
|
7
7
|
DEFAULT_RBENV_EXECUTABLE_PATH = "rbenv"
|
8
8
|
|
9
|
+
attribute :dependencies, type: [TrueClass, FalseClass]
|
9
10
|
attribute :global, default: DEFAULT_GLOBAL, type: [FalseClass, TrueClass]
|
11
|
+
attribute :profile_path, type: String
|
10
12
|
attribute :rbenv_executable_path, default: DEFAULT_RBENV_EXECUTABLE_PATH, type: String
|
11
13
|
attribute :version, required: true, type: String
|
12
14
|
|
13
15
|
# Install the specified version of Ruby with rbenv if rbenv is executable
|
14
16
|
# @note Override
|
15
17
|
def apply
|
18
|
+
if dependencies
|
19
|
+
install_dependencies
|
20
|
+
end
|
16
21
|
if has_rbenv?
|
17
22
|
install_specified_ruby_version unless has_specified_ruby_version?
|
18
23
|
set_specified_global_version if has_invalid_global_version?
|
@@ -23,11 +28,24 @@ module Serverkit
|
|
23
28
|
# @note Override
|
24
29
|
# @return [true, false] True if the specified version of Ruby is installed
|
25
30
|
def check
|
26
|
-
has_rbenv? && has_specified_ruby_version? && !has_invalid_global_version?
|
31
|
+
has_correct_dependencies? && has_rbenv? && has_specified_ruby_version? && !has_invalid_global_version?
|
27
32
|
end
|
28
33
|
|
29
34
|
private
|
30
35
|
|
36
|
+
# @return [Array<Serverkit::Resources::Base>]
|
37
|
+
def build_dependent_resources
|
38
|
+
[
|
39
|
+
Serverkit::Resources::RbenvDependentPackages.new(@recipe, {}),
|
40
|
+
Serverkit::Resources::RbenvRbenv.new(@recipe, "user" => user),
|
41
|
+
Serverkit::Resources::RbenvRubyBuild.new(@recipe, "user" => user),
|
42
|
+
Serverkit::Resources::RbenvProfile.new(@recipe, "user" => user, "profile_path" => profile_path),
|
43
|
+
].map do |resource|
|
44
|
+
resource.backend = backend
|
45
|
+
resource
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
31
49
|
# @note Override
|
32
50
|
def default_id
|
33
51
|
version
|
@@ -37,6 +55,10 @@ module Serverkit
|
|
37
55
|
run_command("#{rbenv_executable_path} global").stdout.rstrip
|
38
56
|
end
|
39
57
|
|
58
|
+
def has_correct_dependencies?
|
59
|
+
!dependencies || build_dependent_resources.all?(&:check)
|
60
|
+
end
|
61
|
+
|
40
62
|
# @return [true, false] True if global attribute is specified and it differs from current global
|
41
63
|
def has_invalid_global_version?
|
42
64
|
!global.nil? && global_version != version
|
@@ -52,6 +74,10 @@ module Serverkit
|
|
52
74
|
check_command("#{rbenv_executable_path} prefix #{version}")
|
53
75
|
end
|
54
76
|
|
77
|
+
def install_dependencies
|
78
|
+
build_dependent_resources.each(&:run_apply)
|
79
|
+
end
|
80
|
+
|
55
81
|
def install_specified_ruby_version
|
56
82
|
run_command("#{rbenv_executable_path} install #{version}")
|
57
83
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require "serverkit/resources/base"
|
2
|
+
|
3
|
+
module Serverkit
|
4
|
+
module Resources
|
5
|
+
class RbenvRubyBuild < Base
|
6
|
+
attribute :user, required: true, type: String
|
7
|
+
|
8
|
+
# @note Override
|
9
|
+
def apply
|
10
|
+
build_resource.run_apply
|
11
|
+
end
|
12
|
+
|
13
|
+
# @note Override
|
14
|
+
def check
|
15
|
+
build_resource.check
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def build_resource
|
21
|
+
resource = Serverkit::Resources::Git.new(
|
22
|
+
@recipe,
|
23
|
+
"path" => "/home/#{user}/.rbenv/plugins/ruby-build",
|
24
|
+
"repository" => "https://github.com/sstephenson/ruby-build.git",
|
25
|
+
"user" => user,
|
26
|
+
)
|
27
|
+
resource.backend = backend
|
28
|
+
resource
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverkit-rbenv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakamura
|
@@ -70,7 +70,10 @@ files:
|
|
70
70
|
- lib/serverkit/rbenv.rb
|
71
71
|
- lib/serverkit/rbenv/version.rb
|
72
72
|
- lib/serverkit/resources/rbenv_dependent_packages.rb
|
73
|
+
- lib/serverkit/resources/rbenv_profile.rb
|
74
|
+
- lib/serverkit/resources/rbenv_rbenv.rb
|
73
75
|
- lib/serverkit/resources/rbenv_ruby.rb
|
76
|
+
- lib/serverkit/resources/rbenv_ruby_build.rb
|
74
77
|
- serverkit-rbenv.gemspec
|
75
78
|
homepage: https://github.com/r7kamura/serverkit-rbenv
|
76
79
|
licenses:
|