Merge "Support editable installation in all cases"
This commit is contained in:
commit
7e5db84e56
@ -22,6 +22,7 @@ function check_environment_coherence {
|
|||||||
local ansible_python_cmdline
|
local ansible_python_cmdline
|
||||||
# NOTE(yoctozepto): may have multiple parts
|
# NOTE(yoctozepto): may have multiple parts
|
||||||
ansible_python_cmdline=${ansible_shebang_line#\#\!}
|
ansible_python_cmdline=${ansible_shebang_line#\#\!}
|
||||||
|
ansible_python_version=$($ansible_python_cmdline -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))')
|
||||||
|
|
||||||
if ! $ansible_python_cmdline --version &>/dev/null; then
|
if ! $ansible_python_cmdline --version &>/dev/null; then
|
||||||
echo "ERROR: Ansible Python is not functional." >&2
|
echo "ERROR: Ansible Python is not functional." >&2
|
||||||
@ -66,21 +67,38 @@ function check_environment_coherence {
|
|||||||
|
|
||||||
function find_base_dir {
|
function find_base_dir {
|
||||||
local dir_name
|
local dir_name
|
||||||
|
local python_dir
|
||||||
dir_name=$(dirname "$0")
|
dir_name=$(dirname "$0")
|
||||||
# NOTE(yoctozepto): Fix the case where dir_name is a symlink and VIRTUAL_ENV might not be. This
|
# NOTE(yoctozepto): Fix the case where dir_name is a symlink and VIRTUAL_ENV might not be. This
|
||||||
# happens with pyenv-virtualenv, see https://bugs.launchpad.net/kolla-ansible/+bug/1903887
|
# happens with pyenv-virtualenv, see https://bugs.launchpad.net/kolla-ansible/+bug/1903887
|
||||||
dir_name=$(readlink -e "$dir_name")
|
dir_name=$(readlink -e "$dir_name")
|
||||||
|
python_dir="python${ansible_python_version}"
|
||||||
if [ -z "$SNAP" ]; then
|
if [ -z "$SNAP" ]; then
|
||||||
if [[ ${dir_name} == "/usr/bin" ]]; then
|
if [[ ${dir_name} == "/usr/bin" ]]; then
|
||||||
BASEDIR=/usr/share/kolla-ansible
|
if test -f /usr/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
|
||||||
elif [[ ${dir_name} == "/usr/local/bin" ]]; then
|
|
||||||
BASEDIR=/usr/local/share/kolla-ansible
|
|
||||||
elif [[ ${dir_name} == ~/.local/bin ]]; then
|
|
||||||
BASEDIR=~/.local/share/kolla-ansible
|
|
||||||
elif [[ -n ${VIRTUAL_ENV} ]] && [[ ${dir_name} == "$(readlink -e "${VIRTUAL_ENV}/bin")" ]]; then
|
|
||||||
if test -f ${VIRTUAL_ENV}/lib/python*/site-packages/kolla-ansible.egg-link; then
|
|
||||||
# Editable install.
|
# Editable install.
|
||||||
BASEDIR="$(head -n1 ${VIRTUAL_ENV}/lib/python*/site-packages/kolla-ansible.egg-link)"
|
BASEDIR="$(head -n1 /usr/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
|
||||||
|
else
|
||||||
|
BASEDIR=/usr/share/kolla-ansible
|
||||||
|
fi
|
||||||
|
elif [[ ${dir_name} == "/usr/local/bin" ]]; then
|
||||||
|
if test -f /usr/local/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
|
||||||
|
# Editable install.
|
||||||
|
BASEDIR="$(head -n1 /usr/local/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
|
||||||
|
else
|
||||||
|
BASEDIR=/usr/local/share/kolla-ansible
|
||||||
|
fi
|
||||||
|
elif [[ ${dir_name} == ~/.local/bin ]]; then
|
||||||
|
if test -f ~/.local/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
|
||||||
|
# Editable install.
|
||||||
|
BASEDIR="$(head -n1 ~/.local/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
|
||||||
|
else
|
||||||
|
BASEDIR=~/.local/share/kolla-ansible
|
||||||
|
fi
|
||||||
|
elif [[ -n ${VIRTUAL_ENV} ]] && [[ ${dir_name} == "$(readlink -e "${VIRTUAL_ENV}/bin")" ]]; then
|
||||||
|
if test -f ${VIRTUAL_ENV}/lib/${python_dir}/site-packages/kolla-ansible.egg-link; then
|
||||||
|
# Editable install.
|
||||||
|
BASEDIR="$(head -n1 ${VIRTUAL_ENV}/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
|
||||||
else
|
else
|
||||||
BASEDIR="${VIRTUAL_ENV}/share/kolla-ansible"
|
BASEDIR="${VIRTUAL_ENV}/share/kolla-ansible"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user