#!/bin/bash

cd /data/allsky || exit 1

DATE=`date -u +%F`
TIME=`date -u +%F_%H.%M`
TMPFILE=cronjob_$TIME.jpeg
THUMBSIZE="16x12"
THUMBSIZE2="82x61"

HF=no
LOCK=/run/lock/allsky-update.lock
if [ "$1" = "hifreq" ]; then
    HF=yes
    TMPFILE=cronjob_${TIME}_hf.jpeg
    LOCK=/run/lock/allsky-update-hf.lock
elif [ "$1" != "" ]; then
    echo "Unknown parameter: $1" >&2
    exit 1
fi

if [ -e "DISABLE" ]; then
    [ "$HF" = "no" ] && echo "Archive updates disabled by /data/allsky/DISABLE" >&2
    exit 1
fi

# Only allow one instance at a time:
mkdir "$LOCK" 2>/dev/null || exit 1

if [ ! -d $DATE/thumbnails/$THUMBSIZE ]; then
    mkdir -p $DATE/thumbnails/$THUMBSIZE || exit 1
fi
if [ ! -d $DATE/thumbnails/$THUMBSIZE2 ]; then
    mkdir -p $DATE/thumbnails/$THUMBSIZE2 || exit 1
fi


if wget --no-proxy -q -O $TMPFILE 'http://omea.lan:8000/jpeg:medium' ; then
    if [ "$HF" = "yes" ]; then
	mv $TMPFILE latest_hf.jpeg
    else
	mv $TMPFILE  $DATE/$TIME.jpg \
	    && convert $DATE/$TIME.jpg -resize $THUMBSIZE $DATE/thumbnails/$THUMBSIZE/$TIME.jpg \
	    && convert $DATE/$TIME.jpg -resize $THUMBSIZE2 $DATE/thumbnails/$THUMBSIZE2/$TIME.jpg \
	    && rm -f latest.jpeg && ln -s $DATE/$TIME.jpg latest.jpeg \
	    && convert latest.jpeg \( latest.jpeg mirrormask.png -compose CopyOpacity -composite -flop \) -compose src-over -composite -quality 95 latest_hmirror.jpeg
	find ????-??-?? -maxdepth 1 -name '*.jpg' |sort >imagefiles.list.new \
	    && mv imagefiles.list.new imagefiles.list
        # (r)eversed (descending order), (b)asename-only list:
        cut -f2 -d/ <imagefiles.list | sort -r >imagefiles.rblist.new \
            && mv imagefiles.rblist.new imagefiles.rblist
    fi
fi

# avoid excessive emails:
[ "$HF" = "yes" ] && rm -f $TMPFILE

if [ -e "$TMPFILE" ]; then
    if [ -s "$TMPFILE" ]; then
        echo "$0 failed, $TMPFILE not removed" >&2
        rm -f "$TMPFILE"
    else
        echo "$0 failed (size of $TMPFILE was zero)" >&2
    fi
fi

rmdir "$LOCK"
