diff --git a/ct/heimdalldashboard.sh b/ct/heimdalldashboard.sh index bdc4889c..d79ac706 100644 --- a/ct/heimdalldashboard.sh +++ b/ct/heimdalldashboard.sh @@ -55,49 +55,50 @@ function default_settings() { function update_script() { header_info if [[ ! -d /opt/Heimdall ]]; then msg_error "No ${APP} Installation Found!"; exit; fi -msg_info "Stopping ${APP}" -systemctl stop heimdall -sleep 1 -msg_ok "Stopped ${APP}" +RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]') +if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + msg_info "Stopping ${APP}" + systemctl stop heimdall + sleep 1 + msg_ok "Stopped ${APP}" -msg_info "Backing up Data" -cp -R /opt/Heimdall/database database-backup -cp -R /opt/Heimdall/public public-backup -sleep 1 -msg_ok "Backed up Data" + msg_info "Backing up Data" + cp -R /opt/Heimdall/database database-backup + cp -R /opt/Heimdall/public public-backup + sleep 1 + msg_ok "Backed up Data" -RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]') -msg_info "Updating Heimdall Dashboard to ${RELEASE}" -wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz -tar xzf ${RELEASE}.tar.gz -VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -cp -R Heimdall-${VER}/* /opt/Heimdall -cd /opt/Heimdall -apt-get install -y composer &>/dev/null -COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null -msg_ok "Updated Heimdall Dashboard to ${RELEASE}" + msg_info "Updating Heimdall Dashboard to ${RELEASE}" + echo "${RELEASE}" >/opt/${APP}_version.txt + wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz + tar xzf ${RELEASE}.tar.gz + VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') + cp -R Heimdall-${VER}/* /opt/Heimdall + cd /opt/Heimdall + apt-get install -y composer &>/dev/null + COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null + msg_ok "Updated Heimdall Dashboard to ${RELEASE}" -msg_info "Restoring Data" -cd ~ -cp -R database-backup/* /opt/Heimdall/database -cp -R public-backup/* /opt/Heimdall/public -sleep 1 -msg_ok "Restored Data" + msg_info "Restoring Data" + cd ~ + cp -R database-backup/* /opt/Heimdall/database + cp -R public-backup/* /opt/Heimdall/public + sleep 1 + msg_ok "Restored Data" -msg_info "Cleanup" -rm -rf ${RELEASE}.tar.gz -rm -rf Heimdall-${VER} -rm -rf public-backup -rm -rf database-backup -rm -rf Heimdall -sleep 1 -msg_ok "Cleaned" + msg_info "Cleanup" + rm -rf {${RELEASE}.tar.gz,Heimdall-${VER},public-backup,database-backup,Heimdall} + sleep 1 + msg_ok "Cleaned" -msg_info "Starting ${APP}" -systemctl start heimdall.service -sleep 2 -msg_ok "Started ${APP}" -msg_ok "Updated Successfully" + msg_info "Starting ${APP}" + systemctl start heimdall.service + sleep 2 + msg_ok "Started ${APP}" + msg_ok "Updated Successfully" +else + msg_ok "No update required. ${APP} ia already at ${RELEASE}." +fi exit }