Module: VagrantPlugins::Ventriloquist::Cap::Debian::Python

Defined in:
lib/ventriloquist/cap/platforms/debian/python.rb

Class Method Summary collapse

Class Method Details

.pyenv_install(machine) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ventriloquist/cap/platforms/debian/python.rb', line 6

def self.pyenv_install(machine)
  machine.communicate.tap do |comm|
    if ! comm.test('test -d $HOME/.pyenv')
      machine.env.ui.info('Installing pyenv dependencies')
      # TODO: Use capability
      comm.sudo('sudo apt-get install -y build-essential libreadline-dev libssl-dev libsqlite3-dev libbz2-dev')

      machine.env.ui.info('Installing pyenv')
      comm.execute "        git clone git://github.com/yyuu/pyenv.git $HOME/.pyenv\n        echo 'export PYENV_ROOT=\"$HOME/.pyenv\"' >> ~/.profile\n        echo 'export PATH=\"$PYENV_ROOT/bin:$PATH\"' >> ~/.profile\n        echo 'eval \"$(pyenv init -)\"' >> ~/.profile\n      INSTALL\n    end\n  end\nend\n"

.pyenv_install_python(machine, version) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/ventriloquist/cap/platforms/debian/python.rb', line 24

def self.pyenv_install_python(machine, version)
  if ! machine.communicate.test("pyenv versions | grep #{version}")
    machine.env.ui.info("Installing Python #{version}")
    machine.communicate.execute("pyenv install #{version}")
    machine.communicate.execute("pyenv global #{version}")
  else
    machine.env.ui.info("Skipping Python '#{version}' installation")
  end
end