From aa6c1d7771a11ac08d6de9d638b8f0eccf485680 Mon Sep 17 00:00:00 2001
From: yeti <yeti@alps>
Date: Fri, 18 Apr 2025 09:22:55 +0100
Subject: [PATCH] fix(ssh): fix issue with empty argument, add logs, add check
 for socket

---
 ssh_router.sh | 50 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 10 deletions(-)

diff --git a/ssh_router.sh b/ssh_router.sh
index 05ce58b..57ab8a9 100755
--- a/ssh_router.sh
+++ b/ssh_router.sh
@@ -3,15 +3,52 @@
 PERSON="$1"
 WORKSPACE="$SSH_ORIGINAL_COMMAND"
 IMAGE="localhost:5100/analytics-backend-workspace:latest"
-TMUX_SESSION="$WORKSPACE|analytics-backend"
 DEV_USER="devuser"
 
+XDG_RUNTIME_DIR="/run/user/$(id -u)"
+
 log() {
   echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
 }
 
-# Log access
-log "[SSH] $USER connected with command: $SSH_ORIGINAL_COMMAND" >>/home/infilytics/ssh-router.log
+# log "🧩 IMAGE = '$IMAGE'"
+# log "🧩 WORKSPACE = '$WORKSPACE'"
+# log "🧩 PERSON = '$PERSON'"
+
+# Fallbacks
+if [[ -z "${WORKSPACE:-}" ]]; then
+  WORKSPACE="$PERSON"
+  log "ℹ️ Defaulted WORKSPACE to $WORKSPACE"
+fi
+
+if [[ -z "${TMUX_SESSION:-}" ]]; then
+  TMUX_SESSION="$WORKSPACE|analytics-backend"
+  log "ℹ️ Defaulted TMUX_SESSION to $TMUX_SESSION"
+fi
+
+if [[ -z "${IMAGE:-}" ]]; then
+  IMAGE="localhost:5100/analytics-backend-workspace:latest"
+  log "ℹ️ Defaulted IMAGE to $IMAGE"
+fi
+
+TMUX_SESSION="$WORKSPACE|analytics-backend"
+
+# Start podman socket service if it's not running
+if [[ ! -S "$XDG_RUNTIME_DIR/podman/podman.sock" ]]; then
+  log "🔄 Starting Podman socket service for user $USER"
+  systemctl --user start podman.socket || {
+    log "❌ Failed to start podman.socket via systemd"
+    exit 1
+  }
+
+  # Wait briefly for socket to appear
+  sleep 1
+fi
+
+if [[ ! -S "$XDG_RUNTIME_DIR/podman/podman.sock" ]]; then
+  log "❌ Podman socket still missing after startup attempt"
+  exit 1
+fi
 
 # Check if image exists locally
 if ! podman image exists "$IMAGE"; then
@@ -73,13 +110,6 @@ get_access_mode_and_session() {
   local workspace="$1"
   local person="$2"
 
-  # If workspace is empty, use person's name
-  if [[ -z "$workspace" ]]; then
-    WORKSPACE="$person"
-    echo "access=rw"
-    return 0
-  fi
-
   if [[ ! "$workspace" =~ ^[a-zA-Z0-9._-]+$ ]]; then
     log "❌ Invalid container name: $WORKSPACE"
     exit 1