photoprism-update.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!/usr/bin/env bash
  2. set -e
  3. RELEASE=$(curl -s https://api.github.com/repos/photoprism/photoprism/releases/latest \
  4. | grep "tag_name" \
  5. | awk '{print substr($2, 2, length($2)-4) }') \
  6. YW=`echo "\033[33m"`
  7. BL=`echo "\033[36m"`
  8. RD=`echo "\033[01;31m"`
  9. CM='\xE2\x9C\x94\033'
  10. GN=`echo "\033[1;92m"`
  11. CL=`echo "\033[m"`
  12. PP=`echo "\e[1;35m"`
  13. while true; do
  14. read -p "Update PhotoPrism LXC. Proceed(y/n)?" yn
  15. case $yn in
  16. [Yy]* ) break;;
  17. [Nn]* ) exit;;
  18. * ) echo "Please answer yes or no.";;
  19. esac
  20. done
  21. clear
  22. function header_info {
  23. echo -e "${PP}
  24. _____ _ _ _____ _
  25. | __ \| | | | | __ \ (_)
  26. | |__) | |__ ___ | |_ ___ | |__) | __ _ ___ _ __ ___
  27. | ___/| _ \ / _ \| __/ _ \| ___/ __| / __| _ _ \
  28. | | | | | | (_) | || (_) | | | | | \__ \ | | | | |
  29. |_| |_| |_|\___/ \__\___/|_| |_| |_|___/_| |_| |_|
  30. ${RD} UPDATE
  31. ${CL}"
  32. }
  33. header_info
  34. show_menu(){
  35. printf " ${YW} 1)${GN} Release Branch ${CL}\n"
  36. printf " ${YW} 2)${YW} Develop Branch ${CL}\n"
  37. printf "Please choose a Install Branch and hit enter or ${RD}x${CL} to exit."
  38. read opt
  39. }
  40. option_picked(){
  41. message1=${@:-"${CL}Error: No message passed"}
  42. printf " ${YW}${message1}${CL}\n"
  43. }
  44. show_menu
  45. while [ "$opt" != " " ]
  46. do
  47. case $opt in
  48. 1) clear;
  49. header_info;
  50. option_picked "Using Release Branch";
  51. BR="release"
  52. break;
  53. ;;
  54. 2) clear;
  55. header_info;
  56. option_picked "Using Develop Branch";
  57. BR="develop"
  58. break;
  59. ;;
  60. x)exit;
  61. ;;
  62. \n)exit;
  63. ;;
  64. *)clear;
  65. option_picked "Please choose a Install Branch from the menu";
  66. show_menu;
  67. ;;
  68. esac
  69. done
  70. echo -en "${GN} Stopping PhotoPrism... "
  71. sudo systemctl stop photoprism
  72. echo -e "${CM}${CL} \r"
  73. echo -en "${GN} Cloning PhotoPrism ${BR} branch... "
  74. git clone https://github.com/photoprism/photoprism.git &>/dev/null
  75. cd photoprism
  76. git checkout ${BR} &>/dev/null
  77. echo -e "${CM}${CL} \r"
  78. echo -en "${GN} Building PhotoPrism ${BR} branch... "
  79. sudo make all &>/dev/null
  80. sudo ./scripts/build.sh prod /opt/photoprism/bin/photoprism &>/dev/null
  81. sudo cp -a assets/ /opt/photoprism/assets/ &>/dev/null
  82. echo -e "${CM}${CL} \r"
  83. echo -en "${GN} Cleaning... "
  84. cd ~
  85. rm -rf photoprism
  86. echo -e "${CM}${CL} \r"
  87. echo -en "${GN} Starting PhotoPrism... "
  88. sudo systemctl start photoprism
  89. echo -e "${CM}${CL} \n"
  90. echo -e "${GN} Finished ${CL} \n "