#!/bin/bash # Description: The Python programming language set -e __PYTHON_VERSION=3.10.0 _recipe _path _recipe git function _pip { local pkg=$1 if ! pip show $pkg >/dev/null 2>&1; then _run "[pip] Install $pkg" pip install $pkg else echo "[pip] $pkg is already installed, skipping." fi } function _pyenv { local version=$1 if ! pyenv versions --bare | grep -q "^$version$"; then _run "[pyenv] Install Python $version" pyenv install $version else echo "[pyenv] Python $version is already installed, skipping." fi } case $_PLATFORM in darwin) _recipe brew _brew pyenv _brew pyenv-virtualenv ;; arch) _recipe _arch _pacman pyenv _yay pyenv-virtualenv ;; debian) _recipe _apt for dep in make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm \ libncurses5-dev libncursesw5-dev xz-utils tk-dev; do _apt $dep done if [ ! -d ~/.pyenv ]; then _run "[git] Install pyenv" bash <(curl -q -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer) else _run "[git] Upgrade pyenv" git -C $(pyenv root) pull fi _path "${HOME}/.pyenv/bin" ;; esac _profile 'eval "$(pyenv init --path)"' _profile 'eval "$(pyenv virtualenv-init -)"' _profile 'pyenv global $(pyenv versions --bare --skip-aliases | egrep "^(\.?[[:digit:]]+)+$" | sort -rV)' _pyenv $__PYTHON_VERSION pyenv global $(pyenv versions --bare --skip-aliases | egrep "^(\.?[[:digit:]]+)+$" | sort -rV)