serverkit-rbenv 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|