mirror of
https://github.com/certbot/certbot.git
synced 2026-02-28 20:31:29 -05:00
Following some inconsistencies occurred during by developments, and in the light of #6508, it decided to wrote a PR that will take fully advantage of the conversion from bash to python to the development setup tools. This PR adresses several issues when trying to use the development setup tools (`tools/venv.py` and `tools/venv3.py`: * on Windows, `python` executable is not always in PATH (default behavior) * even if the option is checked, the `python` executable is not associated to the usually symlink `python3` on Windows * on Windows again, really powerful introspection of the available Python environments can be done with `py`, the Windows Python launcher * in general for all systems, `tools/venv.py` and `tools/venv3.py` ensures that the respective Python major version will be used to setup the virtual environment if available. * finally, the best and first candidate to test should be the Python executable used to launch the `tools/venv*.py` script. It was not relevant before because it was shell scripts, but do it is. The logic is shared in `_venv_common.py`, and will be called appropriately for both scripts. In priority decreasing order, python executable will be search and tested: * from the current Python executable, as exposed by `sys.executable` * from any python or pythonX (X as a python version like 2, 3 or 2.7 or 3.4) executable available in PATH * from the Windows Python launched `py` if available Individual changes were: * Update tools/venv3.py to support py launcher on Windows * Fix typo in help message * More explicit calls with space protection * Complete refactoring to take advantage of the python runtime, and control of the compatible version to use.
41 lines
1 KiB
Python
Executable file
41 lines
1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# Developer virtualenv setup for Certbot client
|
|
import os
|
|
|
|
import _venv_common
|
|
|
|
REQUIREMENTS = [
|
|
'-e acme[dev]',
|
|
'-e .[dev,docs]',
|
|
'-e certbot-apache',
|
|
'-e certbot-dns-cloudflare',
|
|
'-e certbot-dns-cloudxns',
|
|
'-e certbot-dns-digitalocean',
|
|
'-e certbot-dns-dnsimple',
|
|
'-e certbot-dns-dnsmadeeasy',
|
|
'-e certbot-dns-gehirn',
|
|
'-e certbot-dns-google',
|
|
'-e certbot-dns-linode',
|
|
'-e certbot-dns-luadns',
|
|
'-e certbot-dns-nsone',
|
|
'-e certbot-dns-ovh',
|
|
'-e certbot-dns-rfc2136',
|
|
'-e certbot-dns-route53',
|
|
'-e certbot-dns-sakuracloud',
|
|
'-e certbot-nginx',
|
|
'-e certbot-postfix',
|
|
'-e letshelp-certbot',
|
|
'-e certbot-compatibility-test',
|
|
]
|
|
|
|
|
|
def main():
|
|
if os.name == 'nt':
|
|
raise ValueError('Certbot for Windows is not supported on Python 2.x.')
|
|
|
|
venv_args = '--python "{0}"'.format(_venv_common.find_python_executable(2))
|
|
_venv_common.main('venv', venv_args, REQUIREMENTS)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|