29 lines
792 B
Python
29 lines
792 B
Python
|
from shlex import quote
|
||
|
|
||
|
directories = {
|
||
|
'/opt/pyenv': {},
|
||
|
'/opt/pyenv/install': {},
|
||
|
}
|
||
|
|
||
|
git_deploy = {
|
||
|
'/opt/pyenv/install': {
|
||
|
'repo': 'https://github.com/pyenv/pyenv.git',
|
||
|
'rev': node.metadata.get('pyenv/version'),
|
||
|
'needs': {
|
||
|
'directory:/opt/pyenv/install',
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for version in node.metadata.get('pyenv/python_versions', set()):
|
||
|
actions[f'pyenv_install_{version}'] = {
|
||
|
'command': f'PYENV_ROOT=/opt/pyenv /opt/pyenv/install/bin/pyenv install {quote(version)}',
|
||
|
'unless': f'PYENV_ROOT=/opt/pyenv /opt/pyenv/install/bin/pyenv versions --bare | grep -E "^{quote(version)}$"',
|
||
|
'needs': {
|
||
|
'git_deploy:/opt/pyenv/install',
|
||
|
},
|
||
|
'after': {
|
||
|
'pkg_apt:',
|
||
|
},
|
||
|
}
|