#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

# try to include laminar env
if [ -f /etc/profile.d/laminar.sh ]
then
	source /etc/profile.d/laminar.sh
fi

# if started as root
if [ $UID -eq 0 ]
then
	find /data \! -user executor -exec chown executor:executor {} \;
	su executor -c cron-command
	exit $?
fi
# check lock
lock=/var/run/cloner.pid

dir_prefix=cloner

max_jobs=${JOBS:-3}

function die(){
	echo $@ 1>&2
	exit 1
}

# first, check process
if [ -f $lock ] 
then
	pid=$(cat $lock)
	# if it still runs, die not so quietly
	[ -n "$pid" ] && [ -d /proc/$pid ] && die "Another process running!"
fi
# else make some mess and setup trap
echo $BASHPID > $lock

find /data -maxdepth 1 -type d -name "${dir_prefix}-*" | \
	parallel --lb -j $max_jobs -n 1 run-mirror-update

echo "Cron Finished"