79 lines
2.7 KiB
Bash
Executable File
79 lines
2.7 KiB
Bash
Executable File
#! /bin/bash --
|
|
[ ! -z "${GREZZO_1577142035}" ] && return; GREZZO_1577142035=0
|
|
|
|
. "$(this_script_path)/curl.sh"
|
|
|
|
function feat_addpacks_pip_dev() {
|
|
if ! feat_missing "apt-get"; then
|
|
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
|
|
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
|
|
xz-utils tk-dev libffi-dev liblzma-dev git
|
|
sudo apt-get install -y python3-openssl || sudo apt-get install -y python-openssl
|
|
elif ! feat_missing "pacman"; then
|
|
sudo pacman -S --needed base-devel openssl zlib bzip2 readline sqlite curl \
|
|
llvm ncurses xz tk libffi python-pyopenssl git
|
|
elif ! feat_missing "apk"; then
|
|
sudo apk add --no-cache bzip2-dev coreutils dpkg-dev dpkg expat-dev git curl \
|
|
findutils gcc gdbm-dev libc-dev libffi-dev libnsl-dev libtirpc-dev \
|
|
linux-headers make ncurses-dev openssl-dev pax-utils readline-dev \
|
|
sqlite-dev tcl-dev tk tk-dev util-linux-dev xz-dev zlib-dev bash
|
|
elif ! feat_missing "yum"; then
|
|
sudo yum install @development zlib-devel bzip2 bzip2-devel readline-devel sqlite \
|
|
sqlite-devel openssl-devel xz xz-devel libffi-devel findutils
|
|
elif ! feat_missing "zypper"; then
|
|
sudo zypper in zlib-devel bzip2 libbz2-devel libffi-devel libopenssl-devel \
|
|
readline-devel sqlite3 sqlite3-devel xz xz-devel
|
|
fi
|
|
}
|
|
|
|
function feat_add_pip() {
|
|
feat_needed curl
|
|
feat_addpacks_pip_dev
|
|
curl https://pyenv.run | bash 2>&1
|
|
{ echo "export PYENV_ROOT=\"\$HOME/.pyenv\"
|
|
export PATH=\"\$PYENV_ROOT/bin:\$PATH\"
|
|
eval \"\$(pyenv init -)\"" ;
|
|
cat "$HOME/.bashrc.before"; } > "$HOME/.bashrc.before.tmp"
|
|
mv "$HOME/.bashrc.before.tmp" "$HOME/.bashrc.before"
|
|
. "$HOME/.bashrc.before"
|
|
LATESTPYTHON="$(pyenv install -l | grep '^[0-9\. ]*$' | sed -ne '$s|\s*||gp')"
|
|
pyenv install "$LATESTPYTHON"
|
|
pyenv global "$LATESTPYTHON"
|
|
pip install wheel
|
|
pip install --upgrade pip
|
|
}
|
|
|
|
|
|
function pip_feat_missing() {
|
|
if feat_missing "pip"; then
|
|
true
|
|
else
|
|
! ( pip freeze | grep -q "$1=" )
|
|
fi
|
|
}
|
|
|
|
function pip_feat_add() {
|
|
pip install "$1"
|
|
}
|
|
|
|
function pip_feat_needed() {
|
|
feat_needed "pip"
|
|
FEAT="$1"
|
|
if pip_feat_missing "$FEAT"; then
|
|
if type "pip_feat_add_$FEAT" > /dev/null 2>&1 ; then
|
|
eval "pip_feat_add_$FEAT"
|
|
else
|
|
pip_feat_add "$FEAT"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function pip_feat_add_docker-compose() {
|
|
. "$(this_script_path)/pip.sh"
|
|
. "$(this_script_path)/docker.sh"
|
|
feat_needed "docker"
|
|
# Ora docker compose è integrato dentro docker
|
|
# TODO: verificare compatibilità con comando docker-compose
|
|
#pip_feat_add "docker-compose"
|
|
}
|