uninstall.sh 1.7 KB

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