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

repo_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"
cd "${repo_root}"

prefix="${BURROW_PACKAGE_GCS_PREFIX:-}"
source_dir="${BURROW_PACKAGE_REPOSITORY_DIR:-${repo_root}/publish/repositories}"

if [[ ! -d "$source_dir" ]]; then
  echo "package repository directory not found: $source_dir" >&2
  exit 1
fi

bucket="${BURROW_PACKAGE_GCS_BUCKET:-burrow-net-packages}"
if ! command -v gcloud >/dev/null 2>&1; then
  echo "gcloud is required for GCS package repository upload" >&2
  exit 127
fi
gcloud auth list --filter=status:ACTIVE --format='value(account)' | grep -q . || {
  echo "gcloud has no active account; run Scripts/ci/google-wif-auth.sh first" >&2
  exit 1
}
destination="gs://${bucket}"
if [[ -n "$prefix" ]]; then
  destination="${destination}/${prefix}"
fi
gcloud storage rsync --recursive "$source_dir" "$destination"
