Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

60 rader
1.2 KiB

  1. #!/usr/bin/env bash
  2. #
  3. # Summary: Uninstall a specific Python version
  4. #
  5. # Usage: pyenv uninstall [-f|--force] <version>
  6. #
  7. # -f Attempt to remove the specified version without prompting
  8. # for confirmation. If the version does not exist, do not
  9. # display an error message.
  10. #
  11. # See `pyenv versions` for a complete list of installed versions.
  12. #
  13. set -e
  14. # Provide pyenv completions
  15. if [ "$1" = "--complete" ]; then
  16. exec pyenv versions --bare
  17. fi
  18. if [ -z "$PYENV_ROOT" ]; then
  19. PYENV_ROOT="${HOME}/.pyenv"
  20. fi
  21. unset FORCE
  22. if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
  23. FORCE=true
  24. shift
  25. fi
  26. DEFINITION="$1"
  27. case "$DEFINITION" in
  28. "" | -* )
  29. # We can remove the sed fallback once pyenv 0.4.0 is widely available.
  30. { pyenv-help uninstall 2>/dev/null ||
  31. sed -ne '/^#/!q;s/.\{1,2\}//;1,4d;p' < "$0"
  32. } >&2
  33. exit 1
  34. ;;
  35. esac
  36. VERSION_NAME="${DEFINITION##*/}"
  37. PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
  38. if [ -z "$FORCE" ]; then
  39. if [ ! -d "$PREFIX" ]; then
  40. echo "pyenv: version \`$VERSION_NAME' not installed" >&2
  41. exit 1
  42. fi
  43. read -p "pyenv: remove $PREFIX? "
  44. case "$REPLY" in
  45. y* | Y* ) ;;
  46. * ) exit 1 ;;
  47. esac
  48. fi
  49. if [ -d "$PREFIX" ]; then
  50. rm -rf "$PREFIX"
  51. pyenv rehash
  52. fi