#!/usr/bin/env bash
set -euo pipefail

step() {
    printf '\n[%(%H:%M:%S)T] %s\n' -1 "$1"
}

step "Installing system dependencies"
packages=(libportaudio2 pandoc)
missing_packages=()
for package in "${packages[@]}"; do
    if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
        missing_packages+=("$package")
    fi
done

if ((${#missing_packages[@]})); then
    sudo apt-get update
    sudo apt-get install -y --no-install-recommends "${missing_packages[@]}"
fi

step "Installing Python project and development dependencies"
python3 -m pip install --editable . \
    --extra-index-url https://download.pytorch.org/whl/cpu \
    --requirement requirements/requirements-dev.txt \
    --requirement requirements/requirements-browser.txt \
    --requirement requirements/requirements-playwright.txt

step "Installing the Playwright Chromium browser"
python3 -m playwright install chromium

step "Preparing pre-commit environments"
pre-commit install-hooks

step "Orb setup complete"
