Sha256: 3c1e5d3c8d412b5bc14453ce5d1d60bfa8ded425d6319c084265bcd82aea32fe

Contents?: true

Size: 1.43 KB

Versions: 7

Compression:

Stored size: 1.43 KB

Contents

# Recipes for using RVM on a server with capistrano.

unless Capistrano::Configuration.respond_to?(:instance)
  abort "rvm/capistrano requires Capistrano >= 2."
end

Capistrano::Configuration.instance(true).load do

  # Taken from the capistrano code.
  def _cset(name, *args, &block)
    unless exists?(name)
      set(name, *args, &block)
    end
  end

  set :default_shell do
    shell = File.join(rvm_bin_path, "rvm-shell")
    ruby = rvm_ruby_string.to_s.strip
    shell = "rvm_path=#{rvm_path} #{shell} '#{ruby}'" unless ruby.empty?
    shell
  end

  # Let users set the type of their rvm install.
  _cset(:rvm_type, :system)

  # Define rvm_path
  # This is used in the default_shell command to pass the required variable to rvm-shell, allowing
  # rvm to boostrap using the proper path.  This is being lost in Capistrano due to the lack of a
  # full environment.
  _cset(:rvm_path) do
    case rvm_type
    when :system_wide, :root, :system
      "/usr/local/rvm"
    when :local, :user, :default
      "$HOME/.rvm/"
    end
  end

  # Let users override the rvm_bin_path
  _cset(:rvm_bin_path) do
    case rvm_type
    when :system_wide, :root, :system
      "/usr/local/bin"
    when :local, :user, :default
      "$HOME/.rvm/bin"
    else
      "$HOME/.rvm/bin"
    end
  end

  # Use the default ruby.
  _cset(:rvm_ruby_string, "default")

end

# E.g, to use ree and rails 3:
#
#   require 'rvm/capistrano'
#   set :rvm_ruby_string, "ree@rails3"
#

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rvm-1.5.2 lib/rvm/capistrano.rb
rvm-1.5.1 lib/rvm/capistrano.rb
rvm-1.5.0 lib/rvm/capistrano.rb
rvm-1.3.2 lib/rvm/capistrano.rb
rvm-1.3.1 lib/rvm/capistrano.rb
rvm-1.3.0 lib/rvm/capistrano.rb
rvm-1.2.9 lib/rvm/capistrano.rb