mirror of
https://github.com/kennethreitz-archive/python-build.git
synced 2026-06-05 23:30:18 +00:00
127 lines
2.4 KiB
Bash
127 lines
2.4 KiB
Bash
# 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"
|
|
|
|
# exec
|
|
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()
|
|
{
|
|
__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
|
|
}
|
|
|
|
pybrew()
|
|
{
|
|
pythonbrew "$@"
|
|
}
|
|
|
|
# main
|
|
__pythonbrew_set_current_path
|