mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-25 11:51:26 -07:00
Python interpreter discovery (#50163)
* Python interpreter discovery * No longer blindly default to only `/usr/bin/python` * `ansible_python_interpreter` defaults to `auto_legacy`, which will discover the platform Python interpreter on some platforms (but still favor `/usr/bin/python` if present for backward compatibility). Use `auto` to always use the discovered interpreter, append `_silent` to either value to suppress warnings. * includes new doc utility method `get_versioned_doclink` to generate a major.minor versioned doclink against docs.ansible.com (or some other config-overridden URL) * docs revisions for python interpreter discovery (cherry picked from commit 5b53c0012ab7212304c28fdd24cb33fd8ff755c2) * verify output on some distros, cleanup
This commit is contained in:
parent
b8a82f5930
commit
4d3a6123d5
20 changed files with 759 additions and 28 deletions
|
@ -4,6 +4,8 @@
|
|||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
from ansible import constants as C
|
||||
from ansible.release import __version__ as ansible_version
|
||||
from ansible.errors import AnsibleError, AnsibleAssertionError
|
||||
from ansible.module_utils.six import string_types
|
||||
from ansible.module_utils._text import to_native
|
||||
|
@ -107,3 +109,30 @@ def get_docstring(filename, fragment_loader, verbose=False, ignore_errors=False)
|
|||
add_fragments(data['doc'], filename, fragment_loader=fragment_loader)
|
||||
|
||||
return data['doc'], data['plainexamples'], data['returndocs'], data['metadata']
|
||||
|
||||
|
||||
def get_versioned_doclink(path):
|
||||
"""
|
||||
returns a versioned documentation link for the current Ansible major.minor version; used to generate
|
||||
in-product warning/error links to the configured DOCSITE_ROOT_URL
|
||||
(eg, https://docs.ansible.com/ansible/2.8/somepath/doc.html)
|
||||
|
||||
:param path: relative path to a document under docs/docsite/rst;
|
||||
:return: absolute URL to the specified doc for the current version of Ansible
|
||||
"""
|
||||
path = to_native(path)
|
||||
try:
|
||||
base_url = C.config.get_config_value('DOCSITE_ROOT_URL')
|
||||
if not base_url.endswith('/'):
|
||||
base_url += '/'
|
||||
if path.startswith('/'):
|
||||
path = path[1:]
|
||||
split_ver = ansible_version.split('.')
|
||||
if len(split_ver) < 2:
|
||||
raise RuntimeError('invalid version ({0})'.format(ansible_version))
|
||||
|
||||
major_minor = '{0}.{1}'.format(split_ver[0], split_ver[1])
|
||||
|
||||
return '{0}{1}/{2}'.format(base_url, major_minor, path)
|
||||
except Exception as ex:
|
||||
return '(unable to create versioned doc link for path {0}: {1})'.format(path, to_native(ex))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue