#!/bin/bash

set -euo pipefail

BUILDKITE_API_TOKEN=$(gcloud secrets versions access latest --secret="bazel-bazelcipy-BuildkiteClient-token" --project="bazel-untrusted")

git config --global safe.bareRepository all

echo "+++ Starting Git Mirror Update $(date)"

echo "--- Downloading existing mirrors from GCS"
rm -rf bazelbuild
gsutil cat "gs://bazel-git-mirror/bazelbuild-mirror.tar" | tar x
cd bazelbuild

function mirror() {
    repo="$1"
    remote_name="$(echo -n $repo | tr -C '[[:alnum:]]' '-')"
    if [[ -d $remote_name ]]; then
        echo "--- Updating $repo in $remote_name"
        git -C "${remote_name}" fetch --prune
    else
        echo "+++ Cloning $repo into $remote_name"
        git clone --bare "${repo}" "${remote_name}"
        git -C "${remote_name}" config pack.compression 9
    fi
    echo "--- Repacking $remote_name"
    git -C "${remote_name}" repack -a -d -F --threads=0
}

echo "--- Fetching repositories from Buildkite API"
REPOS=$(curl -sS -H "Authorization: Bearer ${BUILDKITE_API_TOKEN}" "https://api.buildkite.com/v2/organizations/bazel/pipelines?per_page=100" \
    | jq '.[] | .repository' | sort -u | sed -e 's/^"//' -e 's/"$//')

echo "--- Mirroring Buildkite repositories"
for repo in $REPOS; do
    mirror "$repo" &
done

wait

echo "--- Fetching repositories from bazelci.py"
REPOS_CI=$(fgrep '"git_repository": "' ../../buildkite/bazelci.py | cut -d'"' -f4 | sort -u)

echo "--- Mirroring bazelci.py repositories"
for repo in $REPOS_CI; do
    mirror "$repo" &
done

wait

echo "--- Cleaning up .DS_Store files"
find . -name .DS_Store -delete

cd ..

echo "--- Verifying the Bazel mirror is up-to-date"
TEST_REPO="https://github.com/bazelbuild/bazel.git"
TEST_MIRROR="https---github-com-bazelbuild-bazel-git"

if [[ -d "bazelbuild/$TEST_MIRROR" ]]; then
    REMOTE_SHA=$(git ls-remote "$TEST_REPO" HEAD | cut -f1)
    LOCAL_SHA=$(git -c safe.bareRepository=all -C "bazelbuild/$TEST_MIRROR" rev-parse HEAD)
    echo "Remote SHA: $REMOTE_SHA"
    echo "Local SHA:  $LOCAL_SHA"

    if [[ "$REMOTE_SHA" == "$LOCAL_SHA" ]]; then
        echo "✅ Mirror is up-to-date."
    else
        echo "❌ Mirror is NOT up-to-date!"
        exit 1
    fi

    echo "--- Verifying clone with reference"
    rm -rf bazel-test
    git clone --reference "bazelbuild/$TEST_MIRROR" "$TEST_REPO" bazel-test
    if [[ -f "bazel-test/.git/objects/info/alternates" ]]; then
        echo "✅ Clone is using the mirror as a reference."
        grep "bazelbuild/$TEST_MIRROR" "bazel-test/.git/objects/info/alternates"
    else
        echo "❌ Clone is NOT using the mirror as a reference!"
        exit 1
    fi
else
    echo "❌ Test mirror bazelbuild/$TEST_MIRROR does not exist!"
    exit 1
fi

echo "+++ Uploading Git Mirror... $(date)"

tar c bazelbuild | gsutil cp - "gs://bazel-git-mirror/bazelbuild-mirror.tar"
zip -q0r - bazelbuild | gsutil cp - "gs://bazel-git-mirror/bazelbuild-mirror.zip"
