#!/usr/bin/env bash set -euo pipefail # etc/init_min.sh # Purpose: Initialize minimal containerd environment for knoe-db development SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" # shellcheck disable=SC1090 source "$SCRIPT_DIR/prole_cfg.sh" log() { echo "==> $*"; } ACTION=${1:-initialize} case "$ACTION" in initialize) log "Initializing minimal environment..." # Ensure containerd is running (if on macOS via brew) if [[ "$OSTYPE" == "darwin"* ]]; then if ! pgrep containerd >/dev/null; then log "Starting containerd via brew services..." brew services start containerd sleep 2 fi fi # Create start.sh and stop.sh in PROJECT_ROOT log "Generating start.sh and stop.sh..." cat > "$PROJECT_ROOT/start.sh" < \$*"; } log "Starting knoe-db (containerd)..." # nerdctl run -d --name knoe-db knoe-db:latest log "Starting knoe-auth (containerd)..." # nerdctl run -d --name knoe-auth prole-authority:latest log "Minimal environment started." EOF chmod +x "$PROJECT_ROOT/start.sh" cat > "$PROJECT_ROOT/stop.sh" < \$*"; } log "Stopping knoe-auth (containerd)..." # nerdctl stop knoe-auth || true # nerdctl rm knoe-auth || true log "Stopping knoe-db (containerd)..." # nerdctl stop knoe-db || true # nerdctl rm knoe-db || true log "Minimal environment stopped." EOF chmod +x "$PROJECT_ROOT/stop.sh" log "Minimal environment initialized successfully." ;; *) log "Unknown action: $ACTION" exit 1 ;; esac