auto bump compile-pythons

This commit is contained in:
Zach D. LAMAZIERE 2023-12-11 12:38:02 +01:00
parent 2810b5740f
commit 5036332666

View File

@ -1,8 +1,29 @@
#!/bin/bash #!/bin/bash
_get_last_patch()
_get_last_tag()
{ {
curl -s https://www.python.org/ftp/python/ | grep -o ">[0-9.]\+/<" | sed "s/^>//;s|/<$||"| grep ^$1 | sort --version-sort | tail -n 1 [[ $1 =~ ^[23.]\.[0-9]+\.[0-9]+$ ]] && echo $1 || \
curl -s https://www.python.org/ftp/python/ \
| grep -o ">[0-9.]\+/<" \
| sed "s/^>//;s|/<$||" \
| grep ^$1 \
| sort --version-sort \
| tail -n 1
}
_get_last_instable()
{
[[ $1 =~ ^[23.]\.[0-9]+\.0$ ]] && \
curl -s https://www.python.org/ftp/python/$1/ \
| grep -o "Python-[0-9]\.[0-9]\+\.0[a-z0-9]\+" \
| sort \
| uniq \
| sed "s/Python-[0-9.]*//;" \
| sort --version-sort \
| tail -n 1
} }
compile-python() compile-python()
@ -13,19 +34,18 @@ compile-python()
# Needs: # Needs:
# sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
local PY_VERSION="$1" local PY_VERSION=`_get_last_tag $1`
local BETA="$2" local BETA=${2:-`_get_last_instable $PY_VERSION`}
local URL="https://www.python.org/ftp/python" local URL="https://www.python.org/ftp/python"
( (
cd /tmp || return 1 cd /tmp || return 1
[ -f $HOME/.local/bin/python${PY_VERSION} ] || return 2 [ -f $HOME/.local/bin/python${PY_VERSION}${BETA} ] || return 2
wget -qO- "$URL/$PY_VERSION/Python-$PY_VERSION$BETA.tgz" | tar -xzf - || ( wget -qO- "$URL/$PY_VERSION/Python-$PY_VERSION$BETA.tgz" | tar -xzf - || (
echo "Version '$PY_VERSION' not found, check on $URL." echo "Version not found, check on $URL."
echo "Ttrying something else." && compile-python `_get_last_patch $PY_VERSION`
) )
[ -d "Python-$PY_VERSION$BETA" ] && (cd "Python-$PY_VERSION$BETA"; ./configure --prefix="$HOME/.local/" && make -j "$(nproc)" && make altinstall) && [ -d "Python-$PY_VERSION$BETA" ] && (cd "Python-$PY_VERSION$BETA"; ./configure --prefix="$HOME/.local/" && make -j "$(nproc)" && make altinstall) &&
rm -r "Python-$PY_VERSION$BETA" && rm -r "Python-$PY_VERSION$BETA" &&
cp $HOME/.local/bin/python${PY_VERSION%.*} $HOME/.local/bin/python${PY_VERSION} cp $HOME/.local/bin/python${PY_VERSION%.*} $HOME/.local/bin/python${PY_VERSION}${BETA}
) )
} }