update.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #!/bin/bash
  2. # Created By [CTCGFW]Project OpenWRT
  3. # https://github.com/project-openwrt
  4. NAME="unblockneteasemusic"
  5. function check_core_if_already_running(){
  6. running_tasks="$(ps |grep "$NAME" |grep "update.sh" |grep "update_core" |grep -v "grep" |awk '{print $1}' |wc -l)"
  7. [ "${running_tasks}" -gt "2" ] && { echo -e "\nA task is already running." >> "/tmp/$NAME.log"; exit 2; }
  8. }
  9. function check_luci_if_already_running(){
  10. running_tasks="$(ps |grep "$NAME" |grep "update.sh" |grep "update_luci" |grep -v "grep" |awk '{print $1}' |wc -l)"
  11. [ "${running_tasks}" -gt "2" ] && { echo -e "\nA task is already running." >> "/tmp/$NAME.log"; exit 2; }
  12. }
  13. function clean_log(){
  14. echo "" > "/tmp/$NAME.log"
  15. }
  16. function check_luci_latest_version(){
  17. luci_latest_ver="$(curl -s 'https://github.com/project-openwrt/luci-app-unblockneteasemusic/releases/latest'| grep -Eo '[0-9\.]+\-[0-9]+')"
  18. [ -z "${luci_latest_ver}" ] && { echo -e "\nFailed to check latest LuCI version, please try again later." >> "/tmp/$NAME.log"; exit 1; }
  19. if [ "$(opkg info "luci-app-unblockneteasemusic" |sed -n "2p" |tr -d "Version: ")" != "${luci_latest_ver}" ]; then
  20. clean_log
  21. echo -e "Local LuCI version: $(opkg info "luci-app-unblockneteasemusic" |sed -n "2p" |tr -d "Version: "), cloud LuCI version: ${luci_latest_ver}." >> "/tmp/$NAME.log"
  22. update_luci
  23. else
  24. echo -e "\nLocal LuCI version: $(opkg info "luci-app-unblockneteasemusic" |sed -n "2p" |tr -d "Version: "), cloud LuCI version: ${luci_latest_ver}." >> "/tmp/$NAME.log"
  25. echo -e "You're already using the latest LuCI version." >> "/tmp/$NAME.log"
  26. exit 3
  27. fi
  28. }
  29. function update_luci(){
  30. echo -e "Updating LuCI..." >> "/tmp/$NAME.log"
  31. mkdir -p "/tmp" > "/dev/null" 2>&1
  32. curl -sL "https://github.com/project-openwrt/luci-app-unblockneteasemusic/releases/download/v${luci_latest_ver}/luci-app-unblockneteasemusic_${luci_latest_ver}_all.ipk" -o "/tmp/luci-app-unblockneteasemusic_${luci_latest_ver}_all.ipk" > "/dev/null" 2>&1
  33. opkg install "/tmp/luci-app-unblockneteasemusic_${luci_latest_ver}_all.ipk"
  34. rm -f "/tmp/luci-app-unblockneteasemusic_${luci_latest_ver}_all.ipk"
  35. rm -rf "/tmp/luci-indexcache" "/tmp/luci-modulecache"
  36. if [ "$(opkg info 'luci-app-unblockneteasemusic' |sed -n '2p' |tr -d 'Version: ')" != "${luci_latest_ver}" ]; then
  37. echo -e "Failed to update LuCI." >> "/tmp/$NAME.log"
  38. exit 1
  39. else
  40. touch "/usr/share/$NAME/update_luci_successfully"
  41. /etc/init.d/firewall restart > "/dev/null" 2>&1
  42. fi
  43. echo -e "Succeeded in updating LuCI." > "/tmp/$NAME.log"
  44. echo -e "Current LuCI version: ${luci_latest_ver}.\n" >> "/tmp/$NAME.log"
  45. }
  46. function check_core_latest_version(){
  47. core_latest_ver="$(curl -s https://github.com/nondanee/UnblockNeteaseMusic/commits/master |tr -d '\n' |grep -Eo 'commit\/[0-9a-z]+' |sed -n 1p |sed 's#commit/##g')"
  48. [ -z "${core_latest_ver}" ] && { echo -e "\nFailed to check latest core version, please try again later." >> "/tmp/$NAME.log"; exit 1; }
  49. if [ ! -e "/usr/share/$NAME/core_local_ver" ]; then
  50. clean_log
  51. echo -e "Local version: NOT FOUND, cloud version: ${core_latest_ver}." >> "/tmp/$NAME.log"
  52. update_core
  53. else
  54. if [ "$(cat /usr/share/$NAME/core_local_ver)" != "${core_latest_ver}" ]; then
  55. clean_log
  56. echo -e "Local core version: $(cat /usr/share/$NAME/core_local_ver 2>"/dev/null"), cloud core version: ${core_latest_ver}." >> "/tmp/$NAME.log"
  57. update_core
  58. else
  59. echo -e "\nLocal core version: $(cat /usr/share/$NAME/core_local_ver 2>"/dev/null"), cloud core version: ${core_latest_ver}." >> "/tmp/$NAME.log"
  60. echo -e "You're already using the latest core version." >> "/tmp/$NAME.log"
  61. exit 3
  62. fi
  63. fi
  64. }
  65. function update_core(){
  66. echo -e "Updating core..." >> "/tmp/$NAME.log"
  67. mkdir -p "/usr/share/$NAME/core" > "/dev/null" 2>&1
  68. rm -rf /usr/share/$NAME/core/* > "/dev/null" 2>&1
  69. curl -sL "https://github.com/nondanee/UnblockNeteaseMusic/archive/master.tar.gz" -o "/usr/share/$NAME/core/core.tar.gz" > "/dev/null" 2>&1
  70. tar -zxf "/usr/share/$NAME/core/core.tar.gz" -C "/usr/share/$NAME/core/" > "/dev/null" 2>&1
  71. mv /usr/share/$NAME/core/UnblockNeteaseMusic-master/* "/usr/share/$NAME/core/"
  72. rm -rf "/usr/share/$NAME/core/core.tar.gz" "/usr/share/$NAME/core/UnblockNeteaseMusic-master" > "/dev/null" 2>&1
  73. if [ ! -e "/usr/share/$NAME/core/app.js" ]; then
  74. echo -e "Failed to download core." >> "/tmp/$NAME.log"
  75. exit 1
  76. else
  77. [ "${update_core_from_luci}" == "y" ] && touch "/usr/share/$NAME/update_core_successfully"
  78. echo -e "${core_latest_ver}" > "/usr/share/$NAME/core_local_ver"
  79. [ "${non_restart}" != "y" ] && /etc/init.d/$NAME restart
  80. fi
  81. echo -e "Succeeded in updating core." > "/tmp/$NAME.log"
  82. echo -e "Current core version: ${core_latest_ver}.\n" >> "/tmp/$NAME.log"
  83. }
  84. case "$1" in
  85. "update_luci")
  86. check_luci_if_already_running
  87. check_luci_latest_version
  88. ;;
  89. "update_core")
  90. check_core_if_already_running
  91. check_core_latest_version
  92. ;;
  93. "update_core_non_restart")
  94. non_restart="y"
  95. check_core_if_already_running
  96. check_core_latest_version
  97. ;;
  98. "update_core_from_luci")
  99. update_core_from_luci="y"
  100. check_core_if_already_running
  101. check_core_latest_version
  102. ;;
  103. *)
  104. echo -e "Usage: ./update.sh {update_luci|update_core}"
  105. ;;
  106. esac