#!/usr/bin/env bash

set -euo pipefail
root_dir=$(realpath "$(dirname "$(realpath "$0")")/..")

docker run \
    --rm \
    --network host \
    -v "$root_dir/metrics:/metrics" \
    -v "$root_dir/scripts:/scripts:ro" \
    -e PYTHONDONTWRITEBYTECODE=1 \
    docker.io/pyfound/black:26.5.1 \
    bash -c "
        set -euo pipefail
        pip install /metrics/grafana/
        isort --profile black /metrics/grafana/*.py
        black /metrics/grafana/*.py
        for dashboard in /metrics/grafana/*.dashboard.py; do
            name=\$(basename \$dashboard .dashboard.py)
            generate-dashboard \
                -o /metrics/grafana/\$name.json \
                /metrics/grafana/\$name.dashboard.py
            sha256sum ./metrics/grafana/\$name.json > /metrics/grafana/\$name.json.sha256
        done
        python /metrics/grafana/shared_resource_diagnosis.py \
            -o /metrics/grafana/shared_resource_diagnosis.json
        sha256sum ./metrics/grafana/shared_resource_diagnosis.json > \
            /metrics/grafana/shared_resource_diagnosis.json.sha256
        TIKV_DASHBOARD_FIXTURES_READY=1 \
            python -m unittest discover -s /metrics/grafana/tests
    "
