# settings PATH_ROOT="$PYTHONBREW_ROOT" if [ -z "${PATH_ROOT}" ] ; then PATH_ROOT="$HOME/.pythonbrew" fi PATH_ETC="$PATH_ROOT/etc" PATH_HOME="$PYTHONBREW_HOME" if [ -z "${PATH_HOME}" ] ; then PATH_HOME="$HOME/.pythonbrew" fi PATH_HOME_ETC="$PATH_HOME/etc" # py file PY_PYTHONBREW="$PATH_ROOT/bin/pythonbrew" # functions __pythonbrew_set_default() { PATH_PYTHONBREW="$PATH_ROOT/bin" } __pythonbrew_set_path() { PATH_WITHOUT_PYTHONBREW=$(printf $PATH | awk -v RS=: -v ORS=: "/${PATH_ROOT//\//\/}/ {next} {print}" | sed -e 's#:$##') export PATH=$PATH_PYTHONBREW:$PATH_WITHOUT_PYTHONBREW } __pythonbrew_set_temp_path() { if [[ -s "$PATH_HOME_ETC/temp" ]] ; then source "$PATH_HOME_ETC/temp" PATH_PYTHONBREW="$PATH_ROOT/bin:$PATH_PYTHONBREW_TEMP" else __pythonbrew_set_default fi __pythonbrew_set_path } __pythonbrew_set_current_path() { if [[ -s "$PATH_HOME_ETC/current" ]] ; then source "$PATH_HOME_ETC/current" PATH_PYTHONBREW="$PATH_ROOT/bin:$PATH_PYTHONBREW_CURRENT" else __pythonbrew_set_default fi __pythonbrew_set_path } __pythonbrew_reload() { [[ -s "$PATH_ETC/bashrc" ]] && source "$PATH_ETC/bashrc" } __pythonbrew_use() { $pythonbrew "$@" [[ $? == 0 ]] && __pythonbrew_set_temp_path } __pythonbrew_switch() { $pythonbrew "$@" [[ $? == 0 ]] && __pythonbrew_set_current_path } __pythonbrew_off() { $pythonbrew "$@" [[ $? == 0 ]] && __pythonbrew_set_current_path } __pythonbrew_update() { $pythonbrew "$@" [[ $? == 0 ]] && __pythonbrew_reload } __pythonbrew_venv() { $pythonbrew "$@" if [[ $? == 0 ]] ; then if [[ -s "$PATH_HOME_ETC/venv.run" ]] ; then source "$PATH_HOME_ETC/venv.run" cat /dev/null > "$PATH_HOME_ETC/venv.run" fi fi } __pythonbrew_find_command() { command_name="" for arg in "$@" ; do case $arg in --*) continue;; -*) continue;; *) command_name=$arg break ;; esac done } __pythonbrew_run() { __pythonbrew_find_command "$@" case $command_name in use) __pythonbrew_use "$@";; switch) __pythonbrew_switch "$@" ;; off) __pythonbrew_off "$@" ;; update) __pythonbrew_update "$@" ;; venv) __pythonbrew_venv "$@" ;; *) $pythonbrew "$@" ;; esac builtin hash -r } pythonbrew() { pythonbrew=$PY_PYTHONBREW __pythonbrew_run "$@" } pybrew() { pythonbrew "$@" } sudopybrew() { pythonbrew="sudo PYTHONBREW_ROOT=$PATH_ROOT $PY_PYTHONBREW" __pythonbrew_run "$@" } # main __pythonbrew_set_current_path