#!/bin/sh

set -eu

LOCKFILE=/var/lock/pkgos-repository.lock
PIDFILE=/var/lock/pkgos-repository-lock.pid

ME=$(basename $0)

usage() {
	echo "Usage: $ME {acquire|release}" >&2
	exit 2
}

if [ $# != 1 ] ; then
	usage
fi

case "$1" in
acquire)
	(
		exec 9>"$LOCKFILE"
		flock -x 9
		echo "$$" > "$PIDFILE"
		while [ -f "$PIDFILE" ]; do
			sleep 1
		done
	) &
;;
release)
	if [ -f "$PIDFILE" ]; then
		PID=$(cat "$PIDFILE")
		rm -f "$PIDFILE"
		kill "$PID" 2>/dev/null || true
	fi
;;
*)
	usage
;;
esac
