#!/bin/bash
# Upload prebuilt packages: sign → promote → update → sync

set -e

SCRIPT_DIR=$(realpath "${BASH_SOURCE[0]%/*}")
BUILD_ROOT=$(realpath "$SCRIPT_DIR/..")
source "$BUILD_ROOT/helpers/paths.sh"
source "$BUILD_ROOT/helpers/lock-helpers.sh"

acquire_release_lock || exit 1

# Only sync understands the publishing flags; sign, promote and update reject
# unknown options outright, so they cannot be forwarded blindly.
COMMON_ARGS=()
SYNC_ARGS=()
while [[ $# -gt 0 ]]; do
  case $1 in
  --skip-prod-check | --prune)
    SYNC_ARGS+=("$1")
    shift
    ;;
  --remote)
    SYNC_ARGS+=("$1" "$2")
    shift 2
    ;;
  *)
    COMMON_ARGS+=("$1")
    shift
    ;;
  esac
done

"$SCRIPT_DIR/repo" sign "${COMMON_ARGS[@]}"
"$SCRIPT_DIR/repo" promote "${COMMON_ARGS[@]}"
"$SCRIPT_DIR/repo" update "${COMMON_ARGS[@]}"
"$SCRIPT_DIR/repo" sync "${COMMON_ARGS[@]}" "${SYNC_ARGS[@]}"
