@@ -28,33 +28,48 @@ function update_script() {
2828 header_info
2929 check_container_storage
3030 check_container_resources
31+
3132 if [[ ! -d /opt/actualbudget ]]; then
3233 msg_error " No ${APP} Installation Found!"
3334 exit
3435 fi
36+
3537 if ! command -v jq > /dev/null 2>&1 ; then
36- echo " Installing jq..."
37- apt-get install -y jq > /dev/null 2>&1
38- echo " Installed jq..."
38+ echo " Installing jq..."
39+ apt-get install -y jq > /dev/null 2>&1
40+ echo " Installed jq..."
3941 fi
4042
41- msg_info " Updating ${APP} "
42- systemctl stop actualbudget
4343 RELEASE=$( curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output ' .[0].name' )
44- TEMPD=" $( mktemp -d) "
45- cd " ${TEMPD} "
46- wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz
47- mv /opt/actualbudget /opt/actualbudget_bak
48- mkdir -p /opt/actualbudget/
49- mv actualbudget-actual-server-* /* /opt/actualbudget/
50- mv /opt/actualbudget_bak/.env /opt/actualbudget
51- mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
52- cd /opt/actualbudget
53- yarn install & > /dev/null
54- systemctl start actualbudget
55- msg_ok " Successfully Updated ${APP} to ${RELEASE} "
56- rm -rf " ${TEMPD} "
57- rm -rf /opt/actualbudget_bak
44+ if [[ ! -f /opt/${APP} _version.txt ]] || [[ " ${RELEASE} " != " $( cat /opt/${APP} _version.txt) " ]]; then
45+ msg_info " Stopping ${APP} "
46+ systemctl stop actualbudget
47+ msg_ok " ${APP} Stopped"
48+
49+ msg_info " Updating ${APP} to ${RELEASE} "
50+ wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/${RELEASE} .tar.gz -O actual-server.tar.gz
51+ tar -xzvf actual-server.tar.gz > /dev/null 2>&1
52+ mv /opt/actualbudget /opt/actualbudget_bak
53+ mkdir -p /opt/actualbudget/
54+ mv actual-server-* /opt/actualbudget
55+ mv /opt/actualbudget_bak/.env /opt/actualbudget
56+ mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
57+ cd /opt/actualbudget
58+ yarn install & > /dev/null
59+ echo " ${RELEASE} " > /opt/${APP} _version.txt
60+ msg_ok " Updated ${APP} "
61+
62+ msg_info " Starting ${APP} "
63+ systemctl start actualbudget
64+ msg_ok " Started ${APP} "
65+
66+ msg_info " Cleaning Up"
67+ rm -rf /opt/actualbudget_bak
68+ msg_ok " Cleaned"
69+ msg_ok " Updated Successfully"
70+ else
71+ msg_ok " No update required. ${APP} is already at ${RELEASE} "
72+ fi
5873 exit
5974}
6075
0 commit comments