38 lines
958 B
Bash
Executable File
38 lines
958 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
PROJECT_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
|
|
ENV_FILE=${ENV_FILE:-"$PROJECT_ROOT/.env"}
|
|
VENV_DIR=${VENV_DIR:-"$SCRIPT_DIR/.venv"}
|
|
PYTHON_BIN=${PYTHON_BIN:-python3}
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
printf 'Missing env file: %s\n' "$ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
|
|
printf 'Missing Python executable: %s\n' "$PYTHON_BIN" >&2
|
|
exit 1
|
|
fi
|
|
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
|
|
if [ -z "${DKN_CLOUD_NA_EMAIL:-}" ] || [ -z "${DKN_CLOUD_NA_PASSWORD:-}" ]; then
|
|
printf 'DKN_CLOUD_NA_EMAIL and DKN_CLOUD_NA_PASSWORD must be set in %s\n' "$ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -x "$VENV_DIR/bin/python" ]; then
|
|
"$PYTHON_BIN" -m venv "$VENV_DIR"
|
|
fi
|
|
|
|
"$VENV_DIR/bin/python" -m pip install -q -r "$SCRIPT_DIR/requirements.txt"
|
|
|
|
export PYTHONPATH="$PROJECT_ROOT${PYTHONPATH:+:$PYTHONPATH}"
|
|
exec "$VENV_DIR/bin/python" "$SCRIPT_DIR/smoke_test.py"
|