From f2389cdaac1940e9b07d9b20a395366966c700a1 Mon Sep 17 00:00:00 2001
From: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Date: Mon, 28 Oct 2024 16:13:29 +0100
Subject: [PATCH] Tweak  / Remove Git and get complete project file

---
 ct/tianji.sh | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/ct/tianji.sh b/ct/tianji.sh
index 6ff10f9c..ce41532c 100644
--- a/ct/tianji.sh
+++ b/ct/tianji.sh
@@ -61,12 +61,29 @@ if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
 fi
 RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
+  msg_info "Setting Container to Higher Resources"
+  pct set $CTID -memory 4096
+  pct set $CTID -cores 4
+  msg_ok "Set Container to Higher Resources"
   msg_info "Stopping ${APP} Service"
   systemctl stop tianji
   msg_ok "Stopped ${APP} Service"
   msg_info "Updating ${APP} to ${RELEASE}"
-  cd /opt/tianji
-  git checkout -f -q v${RELEASE}
+  cd /opt
+  cp /opt/tianji/src/server/.env /opt/.env
+  mv /opt/tianji /opt/tianji_bak
+  wget -q "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip"
+  unzip -q v${RELEASE}.zip
+  rm -R 
+  mv tianji-${RELEASE} /opt/tianji
+  cd tianji
+  pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile >/dev/null 2>&1
+  pnpm build:static >/dev/null 2>&1
+  pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false >/dev/null 2>&1
+  mkdir -p ./src/server/public >/dev/null 2>&1
+  cp -r ./geo ./src/server/public >/dev/null 2>&1
+  pnpm build:server >/dev/null 2>&1
+  mv /opt/.env /opt/tianji/src/server/.env 
   cd src/server
   pnpm db:migrate:apply >/dev/null 2>&1
   echo "${RELEASE}" >/opt/${APP}_version.txt
@@ -74,6 +91,13 @@ if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_v
   msg_info "Starting ${APP}"
   systemctl start tianji
   msg_ok "Started ${APP}"
+  msg_info "Cleaning up"
+  rm -R /opt/v${RELEASE}.zip
+  rm -rf /opt/tianji_bak
+  rm -rf /opt/tianji/src/client
+  rm -rf /opt/tianji/website
+  rm -rf /opt/tianji/reporter
+  msg_ok "Cleaned"
   msg_ok "Updated Successfully"
 else
   msg_ok "No update required.  ${APP} is already at ${RELEASE}."