first commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
PYTHON_BIN="${PYTHON_BIN:-python3}"
|
||||
VENV_DIR="${VENV_DIR:-.venv}"
|
||||
|
||||
if ! command -v "$PYTHON_BIN" >/dev/null 2>&1; then
|
||||
echo "[dev] $PYTHON_BIN was not found. Install Python 3 first." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -x "$VENV_DIR/bin/python" ]]; then
|
||||
echo "[dev] Creating virtual environment in $VENV_DIR"
|
||||
if ! "$PYTHON_BIN" -m venv "$VENV_DIR"; then
|
||||
echo "[dev] Failed to create a virtual environment." >&2
|
||||
echo "[dev] On Debian/Ubuntu install: sudo apt install python3-venv" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
PYTHON="$VENV_DIR/bin/python"
|
||||
PIP="$VENV_DIR/bin/pip"
|
||||
|
||||
if grep -Eq "^[[:space:]]*[^#[:space:]]" requirements.txt; then
|
||||
echo "[dev] Installing Python dependencies"
|
||||
"$PIP" install --disable-pip-version-check -r requirements.txt
|
||||
else
|
||||
echo "[dev] No third-party Python dependencies to install"
|
||||
fi
|
||||
|
||||
mkdir -p data/dev logs
|
||||
|
||||
export PYTHONUNBUFFERED=1
|
||||
export PIP_DISABLE_PIP_VERSION_CHECK=1
|
||||
export PIP_NO_CACHE_DIR=1
|
||||
export WEB_BIND="${WEB_BIND:-127.0.0.1}"
|
||||
export WEB_PORT="${WEB_PORT:-8080}"
|
||||
export DB_PATH="${DB_PATH:-$ROOT_DIR/data/dev/ids.db}"
|
||||
export AUTO_BLOCK=false
|
||||
|
||||
if [[ "${1:-}" == "--test" ]]; then
|
||||
echo "[dev] Running tests"
|
||||
exec "$PYTHON" -m unittest discover -s tests -v
|
||||
fi
|
||||
|
||||
if [[ "${RUN_TESTS:-false}" == "true" ]]; then
|
||||
echo "[dev] Running tests"
|
||||
"$PYTHON" -m unittest discover -s tests -v
|
||||
fi
|
||||
|
||||
echo "[dev] Starting web-only development server"
|
||||
echo "[dev] URL: http://${WEB_BIND}:${WEB_PORT}"
|
||||
echo "[dev] Database: ${DB_PATH}"
|
||||
echo "[dev] Docker, Suricata, TAP and TZSP are NOT started in this mode."
|
||||
|
||||
exec "$PYTHON" -m app.dev_web
|
||||
Reference in New Issue
Block a user