chef_cap 0.2.3 → 0.2.4

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.
@@ -1,3 +1,3 @@
1
1
  module ChefCap
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
@@ -146,13 +146,15 @@ else
146
146
  set :chef_version, default_chef_version
147
147
  end
148
148
 
149
+ set :rvm_bin_path, "/tmp/.chef_cap_rvm_path"
150
+
149
151
  namespace :chef do
150
152
  desc "Setup chef solo on the server(s)"
151
153
  task :setup do
152
154
  gem_check_for_chef_cmd = "gem specification --version '>=#{chef_version}' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }'"
153
- install_chef_cmd = "sudo rvm default exec gem install chef --no-ri --no-rdoc"
154
- sudo "rvm default exec #{gem_check_for_chef_cmd} || #{install_chef_cmd} && echo 'Chef Solo already on this server.'"
155
- sudo "rvm default exec which chef-solo"
155
+ install_chef_cmd = "sudo `cat #{rvm_bin_path}` default exec gem install chef --no-ri --no-rdoc"
156
+ sudo "`cat #{rvm_bin_path}` default exec #{gem_check_for_chef_cmd} || #{install_chef_cmd} && echo 'Chef Solo already on this server.'"
157
+ sudo "`cat #{rvm_bin_path}` default exec which chef-solo"
156
158
  end
157
159
 
158
160
  desc "Run chef-solo on the server(s)"
@@ -198,7 +200,7 @@ namespace :chef do
198
200
 
199
201
  task :run_chef_solo do
200
202
  debug_flag = ENV['QUIET'] ? '' : '-l debug'
201
- run_chef_solo = "env PATH=$PATH:/usr/sbin rvm default exec chef-solo -c /tmp/chef-cap-solo-#{rails_env}.rb -j /tmp/chef-cap-#{rails_env}-`hostname`.json #{debug_flag}"
203
+ run_chef_solo = "env PATH=$PATH:/usr/sbin `cat #{rvm_bin_path}` default exec chef-solo -c /tmp/chef-cap-solo-#{rails_env}.rb -j /tmp/chef-cap-#{rails_env}-`hostname`.json #{debug_flag}"
202
204
 
203
205
  unless role_order.empty?
204
206
  role_order.each do |role, dependent_roles|
@@ -9,20 +9,26 @@ namespace :rvm do
9
9
  rvm_standup_script = <<-SH
10
10
  #!/bin/bash
11
11
  RVM_URL="https://rvm.beginrescueend.com/install/rvm"
12
- export PATH=$PATH:/usr/local/rvm/bin
12
+ export PATH=$PATH:/usr/local/rvm/bin:~/.rvm/bin
13
13
  HAVE_RVM_ALREADY=`which rvm 2>/dev/null`
14
- if [ ! -z $HAVE_RVM_ALREADY ]; then
15
- echo "Looks like RVM is already on this machine. Skipping."
14
+ if [ $? -eq 0 ]; then
15
+ echo "Found RVM: " `which rvm`
16
+ echo "Looks like RVM is already on this machine. Recording to /tmp/.chef_cap_rvm_path"
17
+ which rvm > /tmp/.chef_cap_rvm_path
16
18
  exit 0
19
+ else
20
+ echo "Could not find RVM, PATH IS: ${PATH}"
21
+ echo "Going to attempt to attempt to download and install RVM from ${RVM_URL}"
17
22
  fi
18
23
 
19
24
  HAVE_CURL=`which curl 2>/dev/null`
20
- if [ ! -z $HAVE_CURL ]; then
25
+ if [ $? -eq 0 ]; then
21
26
  RVM_TEMP_FILE=`mktemp /tmp/rvm_bootstrap.XXXXXX`
22
27
  curl $RVM_URL > $RVM_TEMP_FILE
23
28
  chmod u+rx $RVM_TEMP_FILE
24
29
  sh $RVM_TEMP_FILE
25
30
  rm -f $RVM_TEMP_FILE
31
+ which rvm > /tmp/.chef_cap_rvm_path
26
32
  else
27
33
  echo "FATAL ERROR: I have no idea how to download RVM without curl!"
28
34
  exit 1
@@ -473,8 +473,8 @@ describe "chef_cap" do
473
473
 
474
474
  it "sets up chef gem" do
475
475
  chef_cap.cap_servers.should_not be_empty
476
- chef_cap.should_receive(:sudo).ordered.with("rvm default exec gem specification --version '>=0.1982.1234' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }' || sudo rvm default exec gem install chef --no-ri --no-rdoc && echo 'Chef Solo already on this server.'").and_return("mocked")
477
- chef_cap.should_receive(:sudo).ordered.with("rvm default exec which chef-solo").and_return("mocked")
476
+ chef_cap.should_receive(:sudo).ordered.with("`cat /tmp/.chef_cap_rvm_path` default exec gem specification --version '>=0.1982.1234' chef 2>&1 | awk 'BEGIN { s = 0 } /^name:/ { s = 1; exit }; END { if(s == 0) exit 1 }' || sudo `cat /tmp/.chef_cap_rvm_path` default exec gem install chef --no-ri --no-rdoc && echo 'Chef Solo already on this server.'").and_return("mocked")
477
+ chef_cap.should_receive(:sudo).ordered.with("`cat /tmp/.chef_cap_rvm_path` default exec which chef-solo").and_return("mocked")
478
478
  chef_cap.cap_task["chef:setup"].call
479
479
  end
480
480
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: chef_cap
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.2.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Case Commons, LLC
@@ -10,7 +10,8 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-16 00:00:00 Z
13
+ date: 2011-06-16 00:00:00 -04:00
14
+ default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: capistrano
@@ -79,6 +80,7 @@ files:
79
80
  - spec/chef_cap_spec.rb
80
81
  - spec/chef_dna_parser_spec.rb
81
82
  - spec/spec_helper.rb
83
+ has_rdoc: true
82
84
  homepage: https://github.com/Casecommons/chef_cap
83
85
  licenses:
84
86
  - MIT
@@ -102,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
104
  requirements: []
103
105
 
104
106
  rubyforge_project:
105
- rubygems_version: 1.8.5
107
+ rubygems_version: 1.6.2
106
108
  signing_key:
107
109
  specification_version: 3
108
110
  summary: capistrano + chef-solo == chef_cap"