heimdalldashboard-update.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env bash
  2. set -e
  3. PP=`echo "\e[1;35m"`
  4. RD=`echo "\033[01;31m"`
  5. BL=`echo "\033[36m"`
  6. CM='\xE2\x9C\x94\033'
  7. GN=`echo "\033[1;92m"`
  8. CL=`echo "\033[m"`
  9. while true; do
  10. read -p "This will Update Heimdall Dashboard. Proceed(y/n)?" yn
  11. case $yn in
  12. [Yy]* ) break;;
  13. [Nn]* ) exit;;
  14. * ) echo "Please answer yes or no.";;
  15. esac
  16. done
  17. clear
  18. function header_info {
  19. echo -e "${PP}
  20. _ _ _ _ _ _ _____ _ _ _
  21. | | | | (_) | | | | | | __ \ | | | | | |
  22. | |__| | ___ _ _ __ ___ __| | __ _| | | | | | | __ _ ___| |__ | |__ ___ __ _ _ __ __| |
  23. | __ |/ _ \ | _ _ \ / _ |/ _ | | | | | | |/ _ / __| _ \| _ \ / _ \ / _ | __/ _ |
  24. | | | | __/ | | | | | | (_| | (_| | | | | |__| | (_| \__ \ | | | |_) | (_) | (_| | | | (_| |
  25. |_| |_|\___|_|_| |_| |_|\__,_|\__,_|_|_| |_____/ \__,_|___/_| |_|_.__/ \___/ \__,_|_| \__,_|
  26. ${RD}UPDATE
  27. ${CL}"
  28. }
  29. header_info
  30. echo -en "${GN} Stopping Heimdall Dashboard... "
  31. systemctl stop heimdall
  32. sleep 1
  33. echo -e "${CM}${CL} \r"
  34. echo -en "${GN} Backing up Data... "
  35. cp -R /opt/Heimdall/database database-backup
  36. cp -R /opt/Heimdall/public public-backup
  37. sleep 1
  38. echo -e "${CM}${CL} \r"
  39. RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
  40. echo -en "${GN} Updating Heimdall Dashboard to ${RELEASE}... "
  41. curl --silent -o ${RELEASE}.tar.gz -L "https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz" &>/dev/null
  42. tar xvzf ${RELEASE}.tar.gz &>/dev/null
  43. VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest \
  44. | grep "tag_name" \
  45. | awk '{print substr($2, 3, length($2)-4) }')
  46. cp -R Heimdall-${VER}/* /opt/Heimdall
  47. echo -e "${CM}${CL} \r"
  48. echo -en "${GN} Restoring Data... "
  49. cp -R database-backup/* /opt/Heimdall/database
  50. cp -R public-backup/* /opt/Heimdall/public
  51. sleep 1
  52. echo -e "${CM}${CL} \r"
  53. echo -en "${GN} Cleanup... "
  54. rm -rf ${RELEASE}.tar.gz
  55. rm -rf Heimdall-${VER}
  56. rm -rf public-backup
  57. rm -rf database-backup
  58. rm -rf Heimdall
  59. sleep 1
  60. echo -e "${CM}${CL} \r"
  61. echo -en "${GN} Starting Heimdall Dashboard... "
  62. systemctl start heimdall
  63. sleep 2
  64. echo -e "${CM}${CL} \r"
  65. echo -en "${GN} Finished! ${CL}\n"