From 56c757b834154d58c913aae120a45e50a1fca57c Mon Sep 17 00:00:00 2001
From: mike dupont <mike.dupont@introspector.local>
Date: Wed, 18 Dec 2024 13:09:42 -0500
Subject: [PATCH] just run

---
 api/just_run.sh | 81 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 api/just_run.sh

diff --git a/api/just_run.sh b/api/just_run.sh
new file mode 100644
index 00000000..785ee9a7
--- /dev/null
+++ b/api/just_run.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+# review and improve
+. ./.env # for secrets
+set -e # stop  on any error
+set -x
+export BRANCH="feature/ec2"
+#export ROOT="/mnt/data1/swarms"
+export ROOT="" # empty
+export WORKSOURCE="${ROOT}/opt/swarms/api"
+if [ ! -f "${ROOT}/opt/swarms/install/setup.txt" ]; then
+    cd "${ROOT}/opt/swarms/" || exit 1 # "we need swarms"
+    git checkout --force  $BRANCH
+    git pull 
+    git log -2 --patch | head  -1000
+    cp "${WORKSOURCE}/boot.sh" "${ROOT}/var/swarms/agent_workspace/boot.sh"
+    mkdir -p "${ROOT}/var/swarms/logs"
+    chmod +x "${ROOT}/var/swarms/agent_workspace/boot.sh"
+    chown -R swarms:swarms "${ROOT}/var/swarms/" "${ROOT}/home/swarms" "${ROOT}/opt/swarms"
+
+    echo 1 >"${ROOT}/opt/swarms/install/setup.txt"
+fi
+
+if [ ! -f "${ROOT}/opt/swarms/install/boot.txt" ]; then
+    # user install but do not start
+    su -c "bash -e -x ${ROOT}/var/swarms/agent_workspace/boot.sh" swarms
+    echo 1 >"${ROOT}/opt/swarms/install/boot.txt"
+fi
+    
+
+if [ ! -f "${ROOT}/opt/swarms/install/pull.txt" ]; then
+    cd "${ROOT}/opt/swarms/" || exit 1 # "we need swarms"
+#    git fetch local 
+#    git stash
+    git checkout --force  $BRANCH
+    git pull # $BRANCH
+    echo 1 >"${ROOT}/opt/swarms/install/pull.txt"
+fi
+
+if [ ! -f "${ROOT}/opt/swarms/install/config.txt" ]; then
+    mkdir -p "${ROOT}/var/run/swarms/secrets/"
+    mkdir -p "${ROOT}/home/swarms/.cache/huggingface/hub"
+    # aws ssm get-parameter     --name "swarms_openai_key" > /root/openaikey.txt
+    export OPENAI_KEY=`aws ssm get-parameter     --name "swarms_openai_key" | jq .Parameter.Value -r `
+    echo "OPENAI_KEY=${OPENAI_KEY}" > "${ROOT}/var/run/swarms/secrets/env"
+    
+    ## append new homedir
+    echo "HF_HOME=${ROOT}/home/swarms/.cache/huggingface/hub" >> "${ROOT}/var/run/swarms/secrets/env"
+    echo "HOME=${ROOT}/home/swarms" >> "${ROOT}/var/run/swarms/secrets/env"
+    # attempt to move the workspace
+    echo 'WORKSPACE_DIR=${STATE_DIRECTORY}' >> "${ROOT}/var/run/swarms/secrets/env"
+    #EnvironmentFile=ROOT/var/run/swarms/secrets/env
+    #ExecStart=ROOT/var/run/uvicorn/env/bin/uvicorn \
+	#	--uds ROOT/run/uvicorn/uvicorn-swarms-api.sock \
+    echo 1 >"${ROOT}/opt/swarms/install/config.txt"    
+fi
+
+
+chown -R swarms:swarms ${ROOT}/var/run/swarms/
+mkdir -p ${ROOT}/opt/swarms/api/agent_workspace/try_except_wrapper/
+chown -R swarms:swarms ${ROOT}/opt/swarms/api/
+
+# always reload
+systemctl daemon-reload
+systemctl start swarms-uvicorn || journalctl -xeu swarms-uvicorn.service
+systemctl enable swarms-uvicorn || journalctl -xeu swarms-uvicorn.service
+systemctl enable nginx
+systemctl start nginx
+
+journalctl -xeu swarms-uvicorn.service | tail -200 || echo oops
+systemctl status swarms-uvicorn.service || echo oops2
+
+# now after swarms is up, we restart nginx
+HOST="localhost"
+PORT=5474
+while ! nc -z $HOST $PORT; do
+  sleep 1
+  echo -n "."
+done
+echo "Port $PORT is now open!"
+
+systemctl restart nginx