39 lines
1.1 KiB
Text
39 lines
1.1 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 1 ]; then
|
||
|
set -x
|
||
|
fi
|
||
|
set -eu
|
||
|
set -o pipefail
|
||
|
|
||
|
#Install python-build
|
||
|
/pyenv/plugins/python-build/install.sh
|
||
|
|
||
|
DIB_PYTHON_VERSIONS=${DIB_PYTHON_VERSIONS:-"2.7,3.5,3.6,3.7,3.8,3.9"}
|
||
|
DIB_VERSIONS_TO_INSTALL=${1:-$DIB_PYTHON_VERSIONS}
|
||
|
|
||
|
# Get pyenv versions
|
||
|
DIB_PYENV_VERSIONS=$(python-build --definitions \
|
||
|
| egrep "^\s*[2,3]\.[0-9]{1,2}\.[0-9]{1,2}$")
|
||
|
|
||
|
declare -A DIB_PYTHON_VERSIONS_ARRAY
|
||
|
|
||
|
for version in ${DIB_PYENV_VERSIONS}; do
|
||
|
DIB_PYTHON_VERSIONS_ARRAY[${version%.*}]+="${version##*.} "
|
||
|
done
|
||
|
|
||
|
if [ -n $DIB_VERSIONS_TO_INSTALL ]; then
|
||
|
readarray -t DIB_VERSIONS_ARRAY <<<\
|
||
|
"$(echo "$DIB_VERSIONS_TO_INSTALL" | tr ',' '\n')"
|
||
|
fi
|
||
|
|
||
|
for key in ${!DIB_PYTHON_VERSIONS_ARRAY[@]}; do
|
||
|
if ([ -n $DIB_VERSIONS_ARRAY ] && \
|
||
|
[[ " ${DIB_VERSIONS_ARRAY[@]} " =~ " ${key} " ]]) || \
|
||
|
[ -z ${DIB_VERSIONS_ARRAY} ]; then
|
||
|
DIB_LAST_VERSION=${key}.$(echo "${DIB_PYTHON_VERSIONS_ARRAY[${key}]}" \
|
||
|
| sed "s/ /\n/g" | sort -nr | head -n1)
|
||
|
python-build ${DIB_LAST_VERSION} /usr/local/stow/python-${DIB_LAST_VERSION}
|
||
|
fi
|
||
|
done
|