25 lines
		
	
	
	
		
			696 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
	
		
			696 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': 'master',
 | |
|         'needs': {
 | |
|             'directory:/opt/pyenv/install',
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| for version in node.metadata.get('pyenv/versions'):
 | |
|     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 -Fxq {quote(version)}',
 | |
|         'needs': {
 | |
|             'git_deploy:/opt/pyenv/install',
 | |
|         },
 | |
|     }
 |