From aa9afba28277605d6d86e45aa433af5142999016 Mon Sep 17 00:00:00 2001
From: Alejandro Lembke Barrientos <aleleba@hotmail.com>
Date: Sun, 13 Apr 2025 23:44:58 +0000
Subject: [PATCH] Trying to fix existing tunnel.

---
 entrypoint.sh | 36 ++++++++++++++++++++++++++++++++++--
 version.txt   |  2 +-
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/entrypoint.sh b/entrypoint.sh
index b46924a..d2f19b1 100755
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -159,8 +159,40 @@ fi
 
 # Check if CLI directory exists and has content
 if [ -d "/home/${HOME_USER}/.vscode/cli" ] && [ "$(ls -A /home/${HOME_USER}/.vscode/cli 2>/dev/null)" ]; then
-    # CLI directory exists and has content, use cli data
-    sudo su ${HOME_USER} -c "code tunnel --cli-data-dir /home/${HOME_USER}/.vscode/cli"
+    # CLI directory exists and has content, extract token and tunnel information
+    
+    # Extract token from token.json if it exists
+    TOKEN_FILE="/home/${HOME_USER}/.vscode/cli/token.json"
+    if [ -f "$TOKEN_FILE" ]; then
+        TOKEN=$(cat "$TOKEN_FILE" | tr -d '\n')
+    else
+        TOKEN=""
+    fi
+    
+    # Extract id and cluster from code_tunnel.json if it exists
+    TUNNEL_FILE="/home/${HOME_USER}/.vscode/cli/code_tunnel.json"
+    if [ -f "$TUNNEL_FILE" ]; then
+        if command -v jq &> /dev/null; then
+            # Use jq if available
+            ID=$(jq -r '.id' "$TUNNEL_FILE")
+            CLUSTER=$(jq -r '.cluster' "$TUNNEL_FILE")
+        else
+            # Fallback to grep and cut if jq is not available
+            ID=$(grep -o '"id"[^,}]*' "$TUNNEL_FILE" | cut -d'"' -f4)
+            CLUSTER=$(grep -o '"cluster"[^,}]*' "$TUNNEL_FILE" | cut -d'"' -f4)
+        fi
+        TUNNEL_ID="${ID}.${CLUSTER}"
+    else
+        TUNNEL_ID=""
+    fi
+    
+    # Create tunnel with extracted values if available
+    if [ -n "$TOKEN" ] && [ -n "$TUNNEL_ID" ]; then
+        sudo su ${HOME_USER} -c "code tunnel --name ${VSCODE_TUNNEL_NAME} --tunnel-id ${TUNNEL_ID}--host-token ${TOKEN}"
+    else
+        # Fallback to simpler command if values couldn't be extracted
+        sudo su ${HOME_USER} -c "code tunnel --name ${VSCODE_TUNNEL_NAME}"
+    fi
 else
     # No CLI directory or empty, use normal startup
     if [[ -v VSCODE_TUNNEL_NAME && -n "${VSCODE_TUNNEL_NAME}" ]]; then
diff --git a/version.txt b/version.txt
index b347b11..351227f 100755
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-3.2.3
+3.2.4