#!/bin/bash
set -euo pipefail

source ${HOME}/bin/script_framework.sh

REPO_DIR=${REPO_DIR:-/home/luzifer/tmp/archrepo}

URL=${1:-}
[ -z "${URL}" ] && fail "No repo URL given as CLI argument"

# Create working dir
TMPDIR="/tmp/aur2repo_$$"
mkdir -p "${TMPDIR}/cfg"

# Ensure cleanup on script exit
function cleanup() {
	rm -rf "${TMPDIR}"
}
trap cleanup EXIT

step "Fetching signing key"
vault read --field=key secret/jenkins/arch-signing >"${TMPDIR}/cfg/signing.asc"

step "Re-fetching Docker image"
docker pull luzifer/arch-repo-builder

step "Building git URL"
docker run --rm -ti \
	-v "${TMPDIR}/src:/src" \
	-v "${TMPDIR}/cfg:/config" \
	-v "${REPO_DIR}:/repo" \
	luzifer/arch-repo-builder \
	"${URL}"

step "Synchronizing repository changes"
cd "${REPO_DIR}"
make upload