Class: RubyRvm

Inherits:
Recipe show all
Defined in:
lib/dust/recipes/ruby_rvm.rb

Instance Method Summary collapse

Methods inherited from Recipe

#prepare

Instance Method Details

#deployObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/dust/recipes/ruby_rvm.rb', line 3

def deploy
  # TODO: rvm only works if your user uses bash/zsh as login shell, check

  # dependency needed by rvm
  return unless @node.install_package 'bash'
  return unless @node.install_package 'curl'

  if @node.uses_apt?
    return unless @node.install_package 'dh-autoreconf'
    return unless @node.install_package 'build-essential'
    @node.install_package 'libssl-dev'
    @node.install_package 'libyaml-dev'
    @node.install_package 'libxml2-dev'
    @node.install_package 'libxslt1-dev'
    @node.install_package 'libreadline6-dev'
    @node.install_package 'zlib1g-dev'

  elsif @node.uses_rpm?
    return unless @node.install_package 'gcc'
    return unless @node.install_package 'make'
    @node.install_package 'openssl-devel'
    @node.install_package 'libyaml-devel'
    @node.install_package 'libxml2-devel'
    @node.install_package 'libxslt-devel'
    @node.install_package 'readline-devel'
    @node.install_package 'zlib-devel'
  end

  @config.each do |user, version|
    unless @node.user_exists? user, :quiet => true
      @node.messages.add("user #{user} doesn't exist. skipping").warning
      next
    end

    return unless change_shell user
    return unless create_homedir user
    return unless install_rvm user
    return unless install_ruby user, version
    return unless set_default user, version
  end
end

#statusObject



46
47
48
49
50
51
52
53
# File 'lib/dust/recipes/ruby_rvm.rb', line 46

def status
  @config.each do |user, version|
    msg = @node.messages.add("getting current ruby-version for user #{user}")
    ret = @node.exec 'rvm use', :as_user => user
    msg.parse_result(ret[:exit_code])
    msg.print_output(ret)
  end
end