mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Refactoring: make logic more fit for rearrangement
With functions, we have more leeway in what to call
This commit is contained in:
parent
6656066d4f
commit
5998f4f7ab
1 changed files with 72 additions and 40 deletions
|
@ -43,7 +43,29 @@ fi
|
||||||
|
|
||||||
root="${0%/*}/.."
|
root="${0%/*}/.."
|
||||||
|
|
||||||
if [ -z "$print" ]; then
|
function main() {
|
||||||
|
case "$mode" in
|
||||||
|
"help")
|
||||||
|
help_
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
"path")
|
||||||
|
print_path
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
"print")
|
||||||
|
init_dirs
|
||||||
|
print_env
|
||||||
|
print_completion
|
||||||
|
print_shell_function
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# should never get here
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
|
function help_() {
|
||||||
case "$shell" in
|
case "$shell" in
|
||||||
bash )
|
bash )
|
||||||
if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then
|
if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then
|
||||||
|
@ -79,36 +101,41 @@ if [ -z "$print" ]; then
|
||||||
esac
|
esac
|
||||||
echo
|
echo
|
||||||
} >&2
|
} >&2
|
||||||
|
}
|
||||||
|
|
||||||
exit 1
|
function init_dirs() {
|
||||||
fi
|
mkdir -p "${PYENV_ROOT}/"{shims,versions}
|
||||||
|
}
|
||||||
|
|
||||||
mkdir -p "${PYENV_ROOT}/"{shims,versions}
|
function print_env() {
|
||||||
|
case "$shell" in
|
||||||
|
fish )
|
||||||
|
echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH"
|
||||||
|
echo "set -gx PYENV_SHELL $shell"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
|
||||||
|
echo "export PYENV_SHELL=$shell"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
case "$shell" in
|
function print_completion() {
|
||||||
fish )
|
completion="${root}/completions/pyenv.${shell}"
|
||||||
echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH"
|
if [ -r "$completion" ]; then
|
||||||
echo "set -gx PYENV_SHELL $shell"
|
echo "source '$completion'"
|
||||||
;;
|
fi
|
||||||
* )
|
|
||||||
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
|
|
||||||
echo "export PYENV_SHELL=$shell"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
completion="${root}/completions/pyenv.${shell}"
|
if [ -z "$no_rehash" ]; then
|
||||||
if [ -r "$completion" ]; then
|
echo 'command pyenv rehash 2>/dev/null'
|
||||||
echo "source '$completion'"
|
fi
|
||||||
fi
|
}
|
||||||
|
|
||||||
if [ -z "$no_rehash" ]; then
|
function print_shell_function() {
|
||||||
echo 'command pyenv rehash 2>/dev/null'
|
commands=(`pyenv-commands --sh`)
|
||||||
fi
|
case "$shell" in
|
||||||
|
fish )
|
||||||
commands=(`pyenv-commands --sh`)
|
cat <<EOS
|
||||||
case "$shell" in
|
|
||||||
fish )
|
|
||||||
cat <<EOS
|
|
||||||
function pyenv
|
function pyenv
|
||||||
set command \$argv[1]
|
set command \$argv[1]
|
||||||
set -e argv[1]
|
set -e argv[1]
|
||||||
|
@ -121,24 +148,24 @@ function pyenv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
EOS
|
EOS
|
||||||
;;
|
;;
|
||||||
ksh )
|
ksh )
|
||||||
cat <<EOS
|
cat <<EOS
|
||||||
function pyenv {
|
function pyenv {
|
||||||
typeset command
|
typeset command
|
||||||
EOS
|
EOS
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
cat <<EOS
|
cat <<EOS
|
||||||
pyenv() {
|
pyenv() {
|
||||||
local command
|
local command
|
||||||
EOS
|
EOS
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$shell" != "fish" ]; then
|
if [ "$shell" != "fish" ]; then
|
||||||
IFS="|"
|
IFS="|"
|
||||||
cat <<EOS
|
cat <<EOS
|
||||||
command="\${1:-}"
|
command="\${1:-}"
|
||||||
if [ "\$#" -gt 0 ]; then
|
if [ "\$#" -gt 0 ]; then
|
||||||
shift
|
shift
|
||||||
|
@ -146,10 +173,15 @@ cat <<EOS
|
||||||
|
|
||||||
case "\$command" in
|
case "\$command" in
|
||||||
${commands[*]})
|
${commands[*]})
|
||||||
eval "\$(pyenv "sh-\$command" "\$@")";;
|
eval "\$(pyenv "sh-\$command" "\$@")"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
command pyenv "\$command" "\$@";;
|
command pyenv "\$command" "\$@"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
EOS
|
EOS
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
Loading…
Reference in a new issue