Puppet Class: devbox::lang::python
- Defined in:
- manifests/lang/python.pp
Overview
Python devbox language configuration.
2 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'manifests/lang/python.pp', line 2
class devbox::lang::python(
$dependencies,
$packages,
$pip_packages,
$pip_path,
$python_path,
$virtualenvsource,
$pypi_username = '',
$pypi_password = '',
$default_version = '3'
) {
include ::devbox::lang
ensure_packages($dependencies, { ensure => latest })
ensure_packages($packages, { ensure => latest })
ensure_resource(file, ["${devbox::home}/.config"], { ensure => directory })
ensure_resource(file, ["${devbox::home}/.local", "${devbox::home}/.local/share", "${devbox::home}/.local/share/python", "${devbox::home}/.local/share/python/virtualenvs"], { ensure => directory })
exec { 'retrieve_pip':
command => '/usr/bin/curl -L https://bootstrap.pypa.io/get-pip.py > /tmp/get-pip.py',
creates => '/tmp/get-pip.py',
require => Package[$dependencies],
}
exec { 'install_pip2':
command => "${python_path}/python2 /tmp/get-pip.py",
creates => "${pip_path}/pip2",
require => Package[$packages],
subscribe => Exec['retrieve_pip'],
}
exec { 'install_pip3':
command => "${python_path}/python3 /tmp/get-pip.py",
creates => "${pip_path}/pip3",
require => Package[$packages],
subscribe => Exec['retrieve_pip'],
}
file { '/usr/local/bin/python':
ensure => link,
target => "${python_path}/python${default_version}",
owner => root,
group => root,
}
file { '/usr/local/bin/pip':
ensure => link,
target => "${pip_path}/pip${default_version}",
owner => root,
group => root,
}
ensure_packages($pip_packages, {
ensure => latest,
provider => pip,
require => [Exec['install_pip2'], Exec['install_pip3']],
})
file { '/etc/pylintrc':
ensure => present,
source => 'puppet:///modules/devbox/lang/python/pylintrc',
owner => root,
group => root,
mode => '0644',
}
file { "${devbox::home}/.config/python":
ensure => directory,
require => File["${devbox::home}/.config"],
} ->
file { "${devbox::home}/.config/python/virtualenvs": ensure => directory } ->
file { "${devbox::home}/.config/python/virtualenvs/hooks": ensure => directory }
file { "${devbox::home}/.config/python/virtualenvs/hooks/postactivate":
ensure => present,
source => 'puppet:///modules/devbox/lang/python/virtualenv/postactivate',
mode => '0644',
require => File["${devbox::home}/.config/python/virtualenvs/hooks"],
}
file { "${devbox::home}/.config/python/virtualenvs/hooks/postdeactivate":
ensure => present,
source => 'puppet:///modules/devbox/lang/python/virtualenv/postdeactivate',
mode => '0644',
require => File["${devbox::home}/.config/python/virtualenvs/hooks"],
}
file { "${devbox::home}/.config/python/virtualenvs/hooks/postmkvirtualenv":
ensure => present,
source => 'puppet:///modules/devbox/lang/python/virtualenv/postmkvirtualenv',
mode => '0644',
require => File["${devbox::home}/.config/python/virtualenvs/hooks"],
}
file { "${devbox::home}/.pypirc":
ensure => file,
content => template('devbox/lang/python/pypirc.erb'),
mode => '0644',
}
ensure_resource(file, ["${devbox::home}/.config/terminal", "${devbox::home}/.config/terminal/extras"], { ensure => directory })
file { "${devbox::home}/.config/terminal/extras/devbox-lang-python.sh":
ensure => file,
content => template('devbox/lang/python/env.erb'),
mode => '0755',
require => File["${devbox::home}/.config/terminal/extras"],
}
file { '/etc/pythonstart':
ensure => present,
source => 'puppet:///modules/devbox/lang/python/startup.py',
owner => root,
group => root,
mode => '0644',
}
}
|