chouchouvs commited on
Commit
d033b46
·
verified ·
1 Parent(s): c168c35

Update entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +23 -11
entrypoint.sh CHANGED
@@ -2,8 +2,8 @@
2
  set -euo pipefail
3
 
4
  : "${GITHUB_REPO_URL:=https://github.com/chourmovs/RFPmaster.git}"
5
- : "${GITHUB_TOKEN:=}" # set in Space “Repository secrets”
6
- : "${API_MODULE:=rfp_api_app}" # module exposing `app = FastAPI(...)`
7
  : "${API_APP_ATTR:=app}"
8
  : "${WORKSPACE:=/home/user/workspace}"
9
 
@@ -12,20 +12,18 @@ CLONE_DIR="${WORKSPACE}/RFPmaster"
12
  echo "[startup] WORKSPACE=${WORKSPACE}"
13
  echo "[startup] target clone dir: ${CLONE_DIR}"
14
 
15
- # clone repo (private if token provided)
16
  if [ ! -d "${CLONE_DIR}" ]; then
17
- echo "[git] Cloning repo…"
18
  if [ -n "${GITHUB_TOKEN}" ]; then
19
- # Safer: send token via header (avoids putting it in the URL & process list)
20
- git -c http.extraHeader="Authorization: Basic $(printf 'oauth2:%s' "${GITHUB_TOKEN}" | base64 -w0)" \
21
- clone --depth=1 "${GITHUB_REPO_URL}" "${CLONE_DIR}"
22
  else
23
- git clone --depth=1 "${GITHUB_REPO_URL}" "${CLONE_DIR}"
 
24
  fi
25
  else
26
- echo "[git] Repo already present, pulling latest"
27
- git -C "${CLONE_DIR}" fetch --depth=1 origin
28
- git -C "${CLONE_DIR}" reset --hard origin/HEAD || true
29
  fi
30
 
31
  git config --global --add safe.directory "${CLONE_DIR}" || true
@@ -40,5 +38,19 @@ fi
40
  export PYTHONPATH="${CLONE_DIR}:${PYTHONPATH:-}"
41
  cd "${CLONE_DIR}"
42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  echo "[uvicorn] launching ${API_MODULE}:${API_APP_ATTR} on 0.0.0.0:7860"
44
  exec uvicorn "${API_MODULE}:${API_APP_ATTR}" --host 0.0.0.0 --port 7860
 
2
  set -euo pipefail
3
 
4
  : "${GITHUB_REPO_URL:=https://github.com/chourmovs/RFPmaster.git}"
5
+ : "${GITHUB_TOKEN:=}" # à mettre dans Secrets si repo privé
6
+ : "${API_MODULE:=rfp_api_app}" # <<< module exposant `app = FastAPI(...)`
7
  : "${API_APP_ATTR:=app}"
8
  : "${WORKSPACE:=/home/user/workspace}"
9
 
 
12
  echo "[startup] WORKSPACE=${WORKSPACE}"
13
  echo "[startup] target clone dir: ${CLONE_DIR}"
14
 
15
+ # clone repo (privé si token présent)
16
  if [ ! -d "${CLONE_DIR}" ]; then
 
17
  if [ -n "${GITHUB_TOKEN}" ]; then
18
+ echo "[git] cloning with token"
19
+ git clone "https://${GITHUB_TOKEN}@${GITHUB_REPO_URL#https://}" "${CLONE_DIR}"
 
20
  else
21
+ echo "[git] cloning public"
22
+ git clone "${GITHUB_REPO_URL}" "${CLONE_DIR}"
23
  fi
24
  else
25
+ echo "[git] repo already present, pulling latest"
26
+ git -C "${CLONE_DIR}" pull --rebase || true
 
27
  fi
28
 
29
  git config --global --add safe.directory "${CLONE_DIR}" || true
 
38
  export PYTHONPATH="${CLONE_DIR}:${PYTHONPATH:-}"
39
  cd "${CLONE_DIR}"
40
 
41
+ echo "[check] ensuring ${API_MODULE}.py exists at repo root…"
42
+ if ! python - << 'PY'
43
+ import importlib, sys
44
+ m = sys.argv[1]
45
+ importlib.import_module(m)
46
+ print(f"[check] import {m}: OK")
47
+ PY
48
+ "${API_MODULE}"
49
+ then
50
+ echo "[ERROR] Cannot import module ${API_MODULE}. Make sure ${API_MODULE}.py is committed at repo root."
51
+ ls -la
52
+ exit 1
53
+ fi
54
+
55
  echo "[uvicorn] launching ${API_MODULE}:${API_APP_ATTR} on 0.0.0.0:7860"
56
  exec uvicorn "${API_MODULE}:${API_APP_ATTR}" --host 0.0.0.0 --port 7860