-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup-env.sh
More file actions
46 lines (37 loc) · 2.04 KB
/
Copy pathsetup-env.sh
File metadata and controls
46 lines (37 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env bash
# Resolve host-specific values and write them into .env.
# Run once on the target Linux host before `docker compose up -d`.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ENV_FILE="$SCRIPT_DIR/.env"
# --------------------------------------------------------------------------- #
# Validation
# --------------------------------------------------------------------------- #
[[ -f "$ENV_FILE" ]] || { echo "ERROR: $ENV_FILE not found." >&2; exit 1; }
command -v getent &>/dev/null || { echo "ERROR: getent not found (non-glibc system?)." >&2; exit 1; }
command -v sed &>/dev/null || { echo "ERROR: sed not found." >&2; exit 1; }
RENDER_GID=$(getent group render 2>/dev/null | cut -d: -f3)
VIDEO_GID=$(getent group video 2>/dev/null | cut -d: -f3)
[[ -n "$RENDER_GID" ]] || { echo "ERROR: 'render' group not found on this host." >&2; exit 1; }
[[ -n "$VIDEO_GID" ]] || { echo "ERROR: 'video' group not found on this host." >&2; exit 1; }
# Sanity-check: GIDs must be numeric
[[ "$RENDER_GID" =~ ^[0-9]+$ ]] || { echo "ERROR: unexpected RENDER_GID value: $RENDER_GID" >&2; exit 1; }
[[ "$VIDEO_GID" =~ ^[0-9]+$ ]] || { echo "ERROR: unexpected VIDEO_GID value: $VIDEO_GID" >&2; exit 1; }
echo "RENDER_GID=$RENDER_GID"
echo "VIDEO_GID=$VIDEO_GID"
# --------------------------------------------------------------------------- #
# 2. HF cache dir — reuse the current user's llama.cpp download cache
# --------------------------------------------------------------------------- #
HF_CACHE_DIR="${HOME}/.cache/llama.cpp"
mkdir -p "$HF_CACHE_DIR"
echo "HF_CACHE_DIR=$HF_CACHE_DIR"
# --------------------------------------------------------------------------- #
# Apply with sed (in-place)
# --------------------------------------------------------------------------- #
sed -i \
-e "s|^RENDER_GID=.*|RENDER_GID=$RENDER_GID|" \
-e "s|^VIDEO_GID=.*|VIDEO_GID=$VIDEO_GID|" \
-e "s|^HF_CACHE_DIR=.*|HF_CACHE_DIR=$HF_CACHE_DIR|" \
"$ENV_FILE"
echo "Done. Updated $ENV_FILE:"
grep -E '^(RENDER_GID|VIDEO_GID|HF_CACHE_DIR)=' "$ENV_FILE"