prole/etc/init_min.sh
chrisfu af89ef547f Implement minimal installation mode (--min) with containerd support
Co-authored-by: Junie <junie@jetbrains.com>
2026-04-22 09:48:04 -07:00

72 lines
1.6 KiB
Bash

#!/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" <<EOF
#!/usr/bin/env bash
set -e
log() { echo "==> \$*"; }
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" <<EOF
#!/usr/bin/env bash
log() { echo "==> \$*"; }
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