From dcb228217286e237e4ed190112b8ae25ae07d9dc Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 24 Jan 2019 15:54:38 -0600 Subject: [PATCH] Add basic support for 'pythonz' utility --- rattail_fabric/python.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rattail_fabric/python.py b/rattail_fabric/python.py index 5dbecb8..e1389e2 100644 --- a/rattail_fabric/python.py +++ b/rattail_fabric/python.py @@ -37,6 +37,31 @@ from fabric.contrib.files import exists, append from rattail_fabric import apt, mkdir +def install_pythonz(): + """ + Install the 'pythonz' utility, for installing arbitrary versions of python. + + Note that this uses 'curl' so that should already be installed. + + https://github.com/saghul/pythonz/blob/master/README.rst#installation + """ + if not exists('/usr/local/pythonz'): + if not exists('/usr/local/src/pythonz'): + mkdir('/usr/local/src/pythonz') + if not exists('/usr/local/src/pythonz/pythonz-install'): + sudo('curl -kL -o /usr/local/src/pythonz/pythonz-install https://raw.github.com/saghul/pythonz/master/pythonz-install') + sudo('chmod +x /usr/local/src/pythonz/pythonz-install') + sudo('/usr/local/src/pythonz/pythonz-install') + + +def install_python(version): + """ + Install a specific version of python, via pythonz. + """ + if not exists('/usr/local/pythonz/pythons/CPython-{}'.format(version)): + sudo('pythonz install {}'.format(version)) + + def install_pip(use_apt=False, eager=True): """ Install/upgrade the Pip installer for Python.