#!/usr/bin/env bash
shopt -s nullglob

lockfile='.mainenance.lock'

usage() { echo "$0 <repo_name>"; }

spark_repo=$1
[[ "$spark_repo" ]] || {
	usage
	exit 1
}

cleanup() { rm -f "$lockfile"; }

lock() {
	[[ -f "$lockfile" ]] && {
		printf 'Lockfile found: %s\n' "$lockfile" >&2
		return 1
	}

	echo $$ > "$lockfile"
	lock_pid=$(<"$lockfile")
	[[ $$ == "$lock_pid" ]] || return 1
}

cd "$HOME/public/$spark_repo" || exit $?

lock || exit 1

trap cleanup EXIT

for f in import/*; do
	f_name="${f##*/}"
	if [[ -f "$f_name" ]]; then
		printf 'Package already exists: %s, not overwriting\n' "$f_name" >&2
		rm -vf "$f"
	else
		mv -vf "$f" ./
		new_pkgs+=( "$f_name" )
	fi
done

repo-sign
repo-clean

for p in "${new_pkgs[@]}"; do
	repo-add -n "$spark_repo.db.tar.gz" "$p"
done