#!/usr/bin/env bash
# Run under `sudo unshare --net bash scripts/test-offline.sh` on Linux with Podman.
set -euo pipefail
BASE=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
work=$(mktemp -d /tmp/gitea-offline-test.XXXXXXXX)
engine=(podman --root "$work/storage" --runroot "$work/run" --storage-driver vfs)
trap 'rm -rf -- "$work"' EXIT
echo "Network namespace: $(readlink /proc/self/ns/net)"
ip route
"${engine[@]}" load -i "$BASE/images/gitea-1.22-linux-amd64.tar"
"${engine[@]}" run --rm --pull=never --network=none --entrypoint /bin/sh \
    -v "$BASE/bin:/opt/gitleaks/bin:ro" \
    -v "$BASE/config:/opt/gitleaks/config:ro" \
    -v "$BASE/hooks:/opt/gitleaks/hooks:ro" \
    -v "$BASE/scripts/test-hook-offline.sh:/test.sh:ro" \
    docker.io/gitea/gitea:1.22 /test.sh
echo 'PASS: archive loaded into an empty store and hooks executed offline'
