diff --git a/customscripts/python_pyenv_setup.sh b/customscripts/python_pyenv_setup.sh new file mode 100644 index 0000000..b32e5d3 --- /dev/null +++ b/customscripts/python_pyenv_setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# set -e + +# set rcfile +rcfile="$HOME/.zshrc" # zsh +# rcfile="$USER/.bashrc" # bash + +# check if a command exists, and if so, purge that package +# usage: check_purge_package +check_purge_package () { + package_name=$1 + + which -s $package_name # silently test for command + package_check=$? # get return code. 0 for found, any other for not found + + if [ $package_check -ne 0 ]; then # if package is found, purge it + echo "sudo apt purge $package_name -y" + else # otherwise skip + echo "no $package_name installation found, skipping uninstall" + fi +} + +# cleanup previous python installs +check_purge_package pyenv +check_purge_package python3 +check_purge_package python2 +check_purge_package python +check_purge_package pip +check_purge_package pip3 +check_purge_package pip2 + +# install pyenv +curl -fsSL https://pyenv.run | bash +## setup shell +### check for pyenv in rcfile +grep -q .pyenv $rcfile +rc_pyenv_check=$? + +if [ $rc_pyenv_check -ne 0 ]; then # if pyenv found + echo "pyenv already set up in $rcfile, skipping add init" +else # if pyenv not found + echo "Setting up pyenv in $rcfile" + echo -e "\n# pyenv setup" >> $rcfile + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $rcfile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> $rcfile + echo 'eval "$(pyenv init - zsh)"' >> $rcfile +fi +## add aliases +### check for aliases in rcfile +grep -q '## python aliases' $rcfile +rc_pyalias_check=$? # get retcode + +if [ $rc_pyalias_check -ne 0 ]; then # if ailases found + echo "pyenv aliases already set up in $rcfile, skipping" +else # if aliases not found + echo "Setting up pyenv aliases in $rcfile" + echo "## python aliases" >> $rcfile + echo 'alias py=python' >> $rcfile + echo 'alias py3=python' >> $rcfile + echo 'alias py2=python' >> $rcfile + echo 'alias python3=python' >> $rcfile + echo 'alias python2=python' >> $rcfile + echo 'alias pip3=pip' >> $rcfile + echo 'alias pip2=pip' >> $rcfile +fi + +echo -e "\n\ndone~ :3~\n\treset shell with exec \"\$SHELL\"\n" \ No newline at end of file