uninstall.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env bash
  2. set -eo pipefail
  3. ARGS_REMOVE_BACKUPS=0
  4. declare -r XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}"
  5. declare -r XDG_CACHE_HOME="${XDG_CACHE_HOME:-"$HOME/.cache"}"
  6. declare -r XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-"$HOME/.config"}"
  7. declare -r LUNARVIM_RUNTIME_DIR="${LUNARVIM_RUNTIME_DIR:-"$XDG_DATA_HOME/lunarvim"}"
  8. declare -r LUNARVIM_CONFIG_DIR="${LUNARVIM_CONFIG_DIR:-"$XDG_CONFIG_HOME/lvim"}"
  9. # TODO: Use a dedicated cache directory #1256
  10. declare -r LUNARVIM_CACHE_DIR="$XDG_CACHE_HOME/nvim"
  11. declare -a __lvim_dirs=(
  12. "$LUNARVIM_CONFIG_DIR"
  13. "$LUNARVIM_RUNTIME_DIR"
  14. "$LUNARVIM_CACHE_DIR"
  15. )
  16. function usage() {
  17. echo "Usage: uninstall.sh [<options>]"
  18. echo ""
  19. echo "Options:"
  20. echo " -h, --help Print this help message"
  21. echo " --remove-backups Remove old backup folders as well"
  22. }
  23. function parse_arguments() {
  24. while [ "$#" -gt 0 ]; do
  25. case "$1" in
  26. --remove-backups)
  27. ARGS_REMOVE_BACKUPS=1
  28. ;;
  29. -h | --help)
  30. usage
  31. exit 0
  32. ;;
  33. esac
  34. shift
  35. done
  36. }
  37. function remove_lvim_dirs() {
  38. for dir in "${__lvim_dirs[@]}"; do
  39. rm -rf "$dir"
  40. if [ "$ARGS_REMOVE_BACKUPS" -eq 1 ]; then
  41. rm -rf "$dir.{bak,old}"
  42. fi
  43. done
  44. }
  45. function remove_lvim_bin() {
  46. local legacy_bin="/usr/local/bin/lvim "
  47. if [ -x "$legacy_bin" ]; then
  48. echo "Error! Unable to remove $legacy_bin without elevation. Please remove manually."
  49. exit 1
  50. fi
  51. lvim_bin="$(command -v lvim 2>/dev/null)"
  52. rm -f "$lvim_bin"
  53. }
  54. function main() {
  55. parse_arguments "$@"
  56. echo "Removing LunarVim binary..."
  57. remove_lvim_bin
  58. echo "Removing LunarVim directories..."
  59. remove_lvim_dirs
  60. echo "Uninstalled LunarVim!"
  61. }
  62. main "$@"