mirror of
https://github.com/certbot/certbot.git
synced 2026-07-28 08:45:22 +02: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.
42 lines
1.0 KiB
Python
Executable File
42 lines
1.0 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()
|