#!/bin/sh -eu

lockdir="/var/lib/alterator/.mirror-lock"
pidfile="$lockdir/pid"
configdir=/etc/alterator/mirror/config
logdir=/var/log/alterator-mirror
commonfile="$configdir/.common"

exit_handler()
{
    local rc="$?"
    trap - EXIT
    rm -rf "$lockdir"

    exit "$rc"
}

! mkdir -- "$lockdir" && [ -s "$lockdir/pid" ] && kill -0 -- "$(cat "$lockdir/pid")" && exit 0

trap exit_handler EXIT HUP PIPE INT QUIT TERM

mkdir -p -- "$lockdir"
echo $$ >"$pidfile"

[ ! -s "$commonfile" ] || . "$commonfile"

mkdir -p -- "$DESTROOT"

link_list=
for i in "$configdir"/*; do
    [ -s "$i" ] || continue
    . "$i"
    [ -n "${LIST:-}" ] || continue
    link_list="$link_list $LIST"
done

for i in "$configdir"/*; do
    [ -s "$i" ] || continue
    . "$i"
    [ -n "${SRCROOT:-}" -a -n "${ARCH:-}" -a -n "${LIST:-}" ] || continue
    HOME=/tmp sisyphus-mirror -c "$i" --link-list "$link_list" -L "$logdir"
done
