from-scratch 0.5.0 → 0.6.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/Berksfile +1 -7
- data/Berksfile.lock +6 -0
- data/README.md +8 -3
- data/bin/scratchify +1 -1
- data/cookbooks/ruby_build/CHANGELOG.md +72 -0
- data/cookbooks/ruby_build/README.md +338 -0
- data/cookbooks/ruby_build/attributes/default.rb +67 -0
- data/cookbooks/ruby_build/libraries/ruby_build_recipe_helpers.rb +40 -0
- data/cookbooks/ruby_build/metadata.json +39 -0
- data/cookbooks/ruby_build/providers/ruby.rb +88 -0
- data/cookbooks/ruby_build/recipes/default.rb +69 -0
- data/cookbooks/ruby_build/resources/ruby.rb +33 -0
- data/cookbooks/ruby_rbenv/CHANGELOG.md +221 -0
- data/cookbooks/ruby_rbenv/README.md +1059 -0
- data/cookbooks/ruby_rbenv/attributes/default.rb +73 -0
- data/cookbooks/ruby_rbenv/libraries/chef_provider_package_rbenvrubygems.rb +94 -0
- data/cookbooks/ruby_rbenv/libraries/chef_rbenv_mixin.rb +49 -0
- data/cookbooks/ruby_rbenv/libraries/chef_rbenv_recipe_helpers.rb +118 -0
- data/cookbooks/ruby_rbenv/libraries/chef_rbenv_script_helpers.rb +79 -0
- data/cookbooks/ruby_rbenv/libraries/matchers.rb +25 -0
- data/cookbooks/ruby_rbenv/metadata.json +1 -0
- data/cookbooks/ruby_rbenv/providers/global.rb +53 -0
- data/cookbooks/ruby_rbenv/providers/plugin.rb +55 -0
- data/cookbooks/ruby_rbenv/providers/rehash.rb +45 -0
- data/cookbooks/ruby_rbenv/providers/ruby.rb +123 -0
- data/cookbooks/ruby_rbenv/providers/script.rb +81 -0
- data/cookbooks/ruby_rbenv/recipes/default.rb +23 -0
- data/cookbooks/ruby_rbenv/recipes/system.rb +52 -0
- data/cookbooks/ruby_rbenv/recipes/system_install.rb +45 -0
- data/cookbooks/ruby_rbenv/recipes/user.rb +76 -0
- data/cookbooks/ruby_rbenv/recipes/user_install.rb +48 -0
- data/cookbooks/ruby_rbenv/resources/gem.rb +44 -0
- data/cookbooks/ruby_rbenv/resources/global.rb +33 -0
- data/cookbooks/ruby_rbenv/resources/plugin.rb +15 -0
- data/cookbooks/ruby_rbenv/resources/rehash.rb +29 -0
- data/cookbooks/ruby_rbenv/resources/ruby.rb +43 -0
- data/cookbooks/ruby_rbenv/resources/script.rb +39 -0
- data/cookbooks/ruby_rbenv/templates/default/rbenv.sh.erb +15 -0
- data/cookbooks/scratchify/Berksfile +1 -7
- data/cookbooks/scratchify/Berksfile.lock +6 -0
- data/cookbooks/scratchify/README.md +8 -3
- data/cookbooks/scratchify/bin/scratchify +1 -1
- data/cookbooks/scratchify/from-scratch.gemspec +1 -0
- data/cookbooks/scratchify/lib/from-scratch.rb +51 -9
- data/cookbooks/scratchify/lib/from-scratch/version.rb +2 -2
- data/cookbooks/scratchify/metadata.json +2 -1
- data/cookbooks/scratchify/spec/from/scratch_spec.rb +62 -5
- data/cookbooks/scratchify/spec/spec_helper.rb +8 -1
- data/cookbooks/scratchify/templates/node.json.erb +28 -7
- data/cookbooks/scratchify/templates/user.json.erb +1 -1
- data/from-scratch.gemspec +1 -0
- data/lib/from-scratch.rb +51 -9
- data/lib/from-scratch/version.rb +2 -2
- data/metadata.rb +1 -0
- data/templates/node.json.erb +28 -7
- data/templates/user.json.erb +1 -1
- metadata +50 -3
@@ -0,0 +1,53 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Provider:: global
|
4
|
+
#
|
5
|
+
# Author:: Fletcher Nichol <fnichol@nichol.ca>
|
6
|
+
#
|
7
|
+
# Copyright 2011, 2014 Fletcher Nichol
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
def whyrun_supported?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
use_inline_resources
|
27
|
+
|
28
|
+
provides :rbenv_global
|
29
|
+
|
30
|
+
include Chef::Rbenv::ScriptHelpers
|
31
|
+
|
32
|
+
action :create do
|
33
|
+
if current_global_version_correct?
|
34
|
+
set_updated { run_script }
|
35
|
+
else
|
36
|
+
Chef::Log.debug("#{new_resource} is already set - nothing to do")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def run_script
|
41
|
+
command = %(rbenv global #{new_resource.rbenv_version})
|
42
|
+
|
43
|
+
rbenv_script "#{command} #{which_rbenv}" do
|
44
|
+
code command
|
45
|
+
user new_resource.user if new_resource.user
|
46
|
+
root_path new_resource.root_path if new_resource.root_path
|
47
|
+
action :run
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def current_global_version_correct?
|
52
|
+
current_global_version != new_resource.rbenv_version
|
53
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Provider:: plugin
|
4
|
+
#
|
5
|
+
# Author:: Joshua Yotty <jyotty@bluebox.net>
|
6
|
+
#
|
7
|
+
# Copyright 2014, Joshua Yotty
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
def whyrun_supported?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
use_inline_resources
|
27
|
+
|
28
|
+
provides :rbenv_plugin
|
29
|
+
|
30
|
+
include Chef::Rbenv::ScriptHelpers
|
31
|
+
|
32
|
+
action :install do
|
33
|
+
set_updated { create_plugins_directory }
|
34
|
+
set_updated { clone_plugin_repo }
|
35
|
+
end
|
36
|
+
|
37
|
+
def create_plugins_directory
|
38
|
+
directory ::File.join(rbenv_root, 'plugins') do
|
39
|
+
owner new_resource.user || 'root'
|
40
|
+
mode '0755'
|
41
|
+
action :create
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def clone_plugin_repo
|
46
|
+
plugin_path = ::File.join(rbenv_root, 'plugins', new_resource.name)
|
47
|
+
|
48
|
+
git "Install #{new_resource.name} plugin" do
|
49
|
+
destination plugin_path
|
50
|
+
repository new_resource.git_url
|
51
|
+
reference new_resource.git_ref || 'master'
|
52
|
+
user new_resource.user if new_resource.user
|
53
|
+
action :sync
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Provider:: rehash
|
4
|
+
#
|
5
|
+
# Author:: Fletcher Nichol <fnichol@nichol.ca>
|
6
|
+
#
|
7
|
+
# Copyright 2011, 2014, Fletcher Nichol
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
def whyrun_supported?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
use_inline_resources
|
27
|
+
|
28
|
+
provides :rbenv_rehash
|
29
|
+
|
30
|
+
include Chef::Rbenv::ScriptHelpers
|
31
|
+
|
32
|
+
action :run do
|
33
|
+
set_updated { run_script }
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_script
|
37
|
+
command = %(rbenv rehash)
|
38
|
+
|
39
|
+
rbenv_script "#{command} #{which_rbenv}" do
|
40
|
+
code command
|
41
|
+
user new_resource.user if new_resource.user
|
42
|
+
root_path new_resource.root_path if new_resource.root_path
|
43
|
+
action :run
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Provider:: ruby
|
4
|
+
#
|
5
|
+
# Author:: Fletcher Nichol <fnichol@nichol.ca>
|
6
|
+
#
|
7
|
+
# Copyright 2011, Fletcher Nichol
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
provides :rbenv_ruby
|
23
|
+
|
24
|
+
include Chef::Rbenv::ScriptHelpers
|
25
|
+
|
26
|
+
def load_current_resource
|
27
|
+
@rubie = new_resource.definition
|
28
|
+
@definition_file = new_resource.definition_file
|
29
|
+
@root_path = new_resource.root_path
|
30
|
+
@user = new_resource.user
|
31
|
+
@environment = new_resource.environment
|
32
|
+
@patch_url = new_resource.patch_url
|
33
|
+
@patch_file = new_resource.patch_file
|
34
|
+
@rbenv_action = new_resource.rbenv_action
|
35
|
+
end
|
36
|
+
|
37
|
+
action :install do # ~FC017
|
38
|
+
perform_install
|
39
|
+
end
|
40
|
+
|
41
|
+
action :reinstall do # ~FC017
|
42
|
+
perform_install
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def perform_install
|
48
|
+
if ruby_build_missing?
|
49
|
+
Chef::Log.warn(
|
50
|
+
'ruby_build cookbook is missing. Please add to the run_list (Action will be skipped).')
|
51
|
+
elsif ruby_installed?
|
52
|
+
Chef::Log.debug("#{new_resource} is already installed - nothing to do")
|
53
|
+
else
|
54
|
+
install_start = Time.now
|
55
|
+
|
56
|
+
install_ruby_dependencies
|
57
|
+
|
58
|
+
Chef::Log.info("Building #{new_resource}, this could take a while...")
|
59
|
+
|
60
|
+
# bypass block scoping issues
|
61
|
+
rbenv_user = @user
|
62
|
+
rubie = @rubie
|
63
|
+
definition = @definition_file || rubie
|
64
|
+
rbenv_prefix = @root_path
|
65
|
+
rbenv_env = @environment
|
66
|
+
|
67
|
+
patch_command = nil
|
68
|
+
patch_command = "--patch < <(curl -sSL #{@patch_url})" if @patch_url
|
69
|
+
patch_command = "--patch < #{@patch_file}" if @patch_file
|
70
|
+
command = %(rbenv #{@rbenv_action} #{definition} #{patch_command})
|
71
|
+
|
72
|
+
rbenv_script "#{command} #{which_rbenv}" do
|
73
|
+
code command
|
74
|
+
user rbenv_user if rbenv_user
|
75
|
+
root_path rbenv_prefix if rbenv_prefix
|
76
|
+
environment rbenv_env if rbenv_env
|
77
|
+
action :nothing
|
78
|
+
end.run_action(:run)
|
79
|
+
|
80
|
+
Chef::Log.debug("#{new_resource} build time was " \
|
81
|
+
"#{(Time.now - install_start) / 60.0} minutes")
|
82
|
+
|
83
|
+
new_resource.updated_by_last_action(true)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def ruby_installed?
|
88
|
+
if Array(new_resource.action).include?(:reinstall)
|
89
|
+
false
|
90
|
+
else
|
91
|
+
::File.directory?(::File.join(rbenv_root, 'versions', @rubie))
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def ruby_build_missing?
|
96
|
+
!run_context.loaded_recipe?('ruby_build')
|
97
|
+
end
|
98
|
+
|
99
|
+
def install_ruby_dependencies
|
100
|
+
definition = ::File.basename(new_resource.definition)
|
101
|
+
|
102
|
+
case definition
|
103
|
+
when /^\d\.\d\.\d/, /^rbx-/, /^ree-/
|
104
|
+
pkgs = node['ruby_build']['install_pkgs_cruby']
|
105
|
+
when /^jruby-/
|
106
|
+
pkgs = node['ruby_build']['install_pkgs_jruby']
|
107
|
+
end
|
108
|
+
|
109
|
+
package Array(pkgs) do
|
110
|
+
action :nothing
|
111
|
+
end.run_action(:install)
|
112
|
+
|
113
|
+
ensure_java_environment if definition =~ /^jruby-/
|
114
|
+
end
|
115
|
+
|
116
|
+
def ensure_java_environment
|
117
|
+
resource_collection.find(
|
118
|
+
'ruby_block[update-java-alternatives]'
|
119
|
+
).run_action(:create)
|
120
|
+
rescue Chef::Exceptions::ResourceNotFound
|
121
|
+
# have pity on my soul
|
122
|
+
Chef::Log.info 'The java cookbook does not appear to in the run_list.'
|
123
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Provider:: script
|
4
|
+
#
|
5
|
+
# Author:: Fletcher Nichol <fnichol@nichol.ca>
|
6
|
+
#
|
7
|
+
# Copyright 2011, 2014, Fletcher Nichol
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
def whyrun_supported?
|
23
|
+
true
|
24
|
+
end
|
25
|
+
|
26
|
+
use_inline_resources
|
27
|
+
|
28
|
+
provides :rbenv_script
|
29
|
+
|
30
|
+
include Chef::Rbenv::ScriptHelpers
|
31
|
+
|
32
|
+
action :run do
|
33
|
+
set_updated { run_script }
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_script
|
37
|
+
script_code = build_script_code
|
38
|
+
script_environment = build_script_environment
|
39
|
+
|
40
|
+
script new_resource.name do
|
41
|
+
interpreter 'bash'
|
42
|
+
code script_code
|
43
|
+
user new_resource.user if new_resource.user
|
44
|
+
creates new_resource.creates if new_resource.creates
|
45
|
+
cwd new_resource.cwd if new_resource.cwd
|
46
|
+
group new_resource.group if new_resource.group
|
47
|
+
returns new_resource.returns if new_resource.returns
|
48
|
+
timeout new_resource.timeout if new_resource.timeout
|
49
|
+
umask new_resource.umask if new_resource.umask
|
50
|
+
|
51
|
+
environment(script_environment)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def build_script_code
|
56
|
+
script = []
|
57
|
+
script << %(export RBENV_ROOT="#{rbenv_root}")
|
58
|
+
script << %(export PATH="${RBENV_ROOT}/bin:$PATH")
|
59
|
+
script << %{eval "$(rbenv init -)"}
|
60
|
+
if new_resource.rbenv_version
|
61
|
+
script << %(export RBENV_VERSION="#{new_resource.rbenv_version}")
|
62
|
+
end
|
63
|
+
script << new_resource.code
|
64
|
+
script.join("\n").concat("\n")
|
65
|
+
end
|
66
|
+
|
67
|
+
def build_script_environment
|
68
|
+
script_env = { 'RBENV_ROOT' => rbenv_root }
|
69
|
+
|
70
|
+
script_env.merge!(new_resource.environment) if new_resource.environment
|
71
|
+
|
72
|
+
if new_resource.path
|
73
|
+
script_env.merge!('PATH' => "#{new_resource.path.join(':')}:#{ENV['PATH']}")
|
74
|
+
end
|
75
|
+
|
76
|
+
if new_resource.user
|
77
|
+
script_env.merge!('USER' => new_resource.user, 'HOME' => user_home)
|
78
|
+
end
|
79
|
+
|
80
|
+
script_env
|
81
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Recipe:: default
|
4
|
+
#
|
5
|
+
# Copyright 2011, Fletcher Nichol
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
class Chef::Recipe
|
21
|
+
# mix in recipe helpers
|
22
|
+
include Chef::Rbenv::RecipeHelpers
|
23
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Recipe:: system
|
4
|
+
#
|
5
|
+
# Copyright 2010, 2011 Fletcher Nichol
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
include_recipe 'ruby_rbenv::system_install'
|
21
|
+
|
22
|
+
Array(node['rbenv']['plugins']).each do |plugin|
|
23
|
+
rbenv_plugin plugin['name'] do
|
24
|
+
git_url plugin['git_url']
|
25
|
+
git_ref plugin['git_ref'] if plugin['git_ref']
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Array(node['rbenv']['rubies']).each do |rubie|
|
30
|
+
if rubie.is_a?(Hash)
|
31
|
+
rbenv_ruby rubie['name'] do
|
32
|
+
environment rubie['environment'] if rubie['environment']
|
33
|
+
definition_file rubie['definition_file'] if rubie['definition_file']
|
34
|
+
end
|
35
|
+
else
|
36
|
+
rbenv_ruby rubie
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
rbenv_global node['rbenv']['global'] if node['rbenv']['global']
|
41
|
+
|
42
|
+
node['rbenv']['gems'].each_pair do |rubie, gems|
|
43
|
+
Array(gems).each do |gem|
|
44
|
+
rbenv_gem gem['name'] do
|
45
|
+
rbenv_version rubie
|
46
|
+
|
47
|
+
%w(version action options source).each do |attr|
|
48
|
+
send(attr, gem[attr]) if gem[attr]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ruby_rbenv
|
3
|
+
# Recipe:: system_install
|
4
|
+
#
|
5
|
+
# Copyright 2011, Fletcher Nichol
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
#
|
19
|
+
|
20
|
+
include_recipe 'ruby_rbenv'
|
21
|
+
|
22
|
+
upgrade_strategy = build_upgrade_strategy(node['rbenv']['upgrade'])
|
23
|
+
git_url = node['rbenv']['git_url']
|
24
|
+
git_ref = node['rbenv']['git_ref']
|
25
|
+
rbenv_prefix = node['rbenv']['root_path']
|
26
|
+
rbenv_plugins = node['rbenv']['plugins']
|
27
|
+
|
28
|
+
install_rbenv_pkg_prereqs
|
29
|
+
|
30
|
+
directory '/etc/profile.d' do
|
31
|
+
owner 'root'
|
32
|
+
mode '0755'
|
33
|
+
end
|
34
|
+
|
35
|
+
template '/etc/profile.d/rbenv.sh' do
|
36
|
+
source 'rbenv.sh.erb'
|
37
|
+
owner 'root'
|
38
|
+
mode '0755'
|
39
|
+
end
|
40
|
+
|
41
|
+
install_or_upgrade_rbenv rbenv_prefix: rbenv_prefix,
|
42
|
+
git_url: git_url,
|
43
|
+
git_ref: git_ref,
|
44
|
+
upgrade_strategy: upgrade_strategy,
|
45
|
+
rbenv_plugins: rbenv_plugins
|