46 lines
1.3 KiB
Bash
Executable file
46 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
set -e
|
|
|
|
APPDIR="$(dirname "$(readlink -f "$0")")"
|
|
|
|
export PATH="$APPDIR/usr/bin:$PATH"
|
|
export EXTRAS_DIR="${EXTRAS_DIR:-$APPDIR/opt/kilocode/extras}"
|
|
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-$APPDIR/opt/patchright-browsers}"
|
|
export CHROME_PATH="${CHROME_PATH:-$APPDIR/opt/google/chrome/chrome}"
|
|
|
|
if [ -z "${HOME}" ] || [ ! -w "${HOME}" ]; then
|
|
export HOME="/tmp/kilocode-home"
|
|
fi
|
|
|
|
mkdir -p "$HOME"
|
|
export XDG_CONFIG_HOME="$HOME/.config"
|
|
export XDG_CACHE_HOME="$HOME/.cache"
|
|
export XDG_DATA_HOME="$HOME/.local/share"
|
|
mkdir -p "$XDG_CONFIG_HOME" "$XDG_CACHE_HOME" "$XDG_DATA_HOME"
|
|
|
|
# Ensure DATA_DIR is writable (default to current directory)
|
|
if [ -z "${DATA_DIR}" ]; then
|
|
DATA_DIR="$PWD/data"
|
|
fi
|
|
|
|
if [ ! -d "$DATA_DIR" ] || [ ! -w "$DATA_DIR" ]; then
|
|
DATA_DIR="$PWD/data"
|
|
fi
|
|
|
|
mkdir -p "$DATA_DIR"
|
|
export DATA_DIR
|
|
|
|
VENV_DIR="$APPDIR/opt/kilocode/.venv"
|
|
PY_BASE="$APPDIR/root/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu"
|
|
PYTHON_BIN="$PY_BASE/bin/python3.14"
|
|
export VIRTUAL_ENV="$VENV_DIR"
|
|
export PYTHONHOME="$PY_BASE"
|
|
export PYTHONPATH="$VENV_DIR/lib/python3.14/site-packages"
|
|
SERVER_PY="$APPDIR/opt/kilocode/src/server.py"
|
|
|
|
if [ ! -x "$PYTHON_BIN" ]; then
|
|
echo "Python runtime not found: $PYTHON_BIN" >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec "$PYTHON_BIN" -u "$SERVER_PY"
|