uptimekuma-update.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/usr/bin/env bash -ex
  2. LATEST=$(curl -sL https://api.github.com/repos/louislam/uptime-kuma/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
  3. YW=`echo "\033[33m"`
  4. BL=`echo "\033[36m"`
  5. RD=`echo "\033[01;31m"`
  6. BGN=`echo "\033[4;92m"`
  7. GN=`echo "\033[1;92m"`
  8. DGN=`echo "\033[32m"`
  9. CL=`echo "\033[m"`
  10. BFR="\\r\\033[K"
  11. HOLD="-"
  12. CM="${GN}✓${CL}"
  13. APP="Uptime Kuma"
  14. while true; do
  15. read -p "This will Update ${APP} to ${LATEST}. Proceed(y/n)?" yn
  16. case $yn in
  17. [Yy]* ) break;;
  18. [Nn]* ) exit;;
  19. * ) echo "Please answer yes or no.";;
  20. esac
  21. done
  22. clear
  23. function header_info {
  24. echo -e "${DGN}
  25. _ _ _ _ _ __
  26. | | | | | | (_) | |/ /
  27. | | | |_v3_ | |_ _ _ __ ___ ___ | ' /_ _ _ __ ___ __ _
  28. | | | | _ \| __| | _ _ \ / _ \ | <| | | | _ _ \ / _ |
  29. | |__| | |_) | |_| | | | | | | __/ | . \ |_| | | | | | | (_| |
  30. \____/| .__/ \__|_|_| |_| |_|\___| |_|\_\__,_|_| |_| |_|\__,_|
  31. | |
  32. |_| UPDATE
  33. ${CL}"
  34. }
  35. header_info
  36. function msg_info() {
  37. local msg="$1"
  38. echo -ne " ${HOLD} ${YW}${msg}..."
  39. }
  40. function msg_ok() {
  41. local msg="$1"
  42. echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
  43. }
  44. msg_info "Stopping ${APP}"
  45. sudo systemctl stop uptime-kuma &>/dev/null
  46. msg_ok "Stopped ${APP}"
  47. cd /opt/uptime-kuma
  48. msg_info "Pulling ${APP} ${LATEST}"
  49. git fetch &>/dev/null
  50. git checkout $LATEST &>/dev/null
  51. git pull &>/dev/null
  52. msg_ok "Pulled ${APP} ${LATEST}"
  53. msg_info "Updating ${APP} to ${LATEST} (Patience)"
  54. npm ci &>/dev/null
  55. msg_ok "Updated ${APP}"
  56. msg_info "Starting ${APP}"
  57. sudo systemctl start uptime-kuma &>/dev/null
  58. msg_ok "Started ${APP}"
  59. msg_ok "Done!"