#!/bin/bash +x
# formato record calendario 
# YYYY-MM-DD HH:MM DESCRIZIONE
test -f "$1" || { #controllo parametri
	echo il primo parametro deve essere un file calendario esistente
	exit 1
}

test "$2" || {
	echo servono due parametri, il secondo deve essere un nome di file delle scadenze da creare o aggiornare
	exit 2
}

function removeAlerts() {
#$1 file calendario
#$2 file allarmi
# formato record calendario 
# YYYY-MM-DD HH:MM DESCRIZIONE
# formato record allarmi
# SECONDI YYYY-MM-DD HH:MM DESCRIZIONE

test -f "$1" || {
	echo "$FUNCNAME" il primo parametro deve essere un file calendario esistente
	exit 1
}
test -f "$2" || {
	echo "$FUNCNAME" il secondo parametro deve essere un file allarmi esistente
	exit 1
}

TMPALARM=$(mktemp) #crea file notifiche temporaneo

cat "$2" | while read SCADENZA DATA ORA DESCRIZIONE
do
	ROWALERT="$SCADENZA $DATA $ORA $DESCRIZIONE"
	ROWCAL="$DATA $ORA $DESCRIZIONE"
	grep -qx "$ROWCAL" "$1" && echo "$ROWALERT" >> "$TMPALARM" # append degli eventi presenti in calendario
done

echo "$TMPALARM" > "$2" #sovrascrive file allarmi
rm -f "$TMPALARM"  #elimina file allarmi temporaneo

}

CALENDARIO="$1"
FILEALLARMI="$2"

cat "$CALENDARIO" | while read DATA ORA DESCRIZIONE
do
	SCADENZA=$(date +%s -d "$DATA $ORA") # conversione in secondi dal 1970-01-01 01:00
	RIGAGIORNOPRIMA="$(( SCADENZA - 24*60*60 )) $DATA $ORA $DESCRIZIONE"
	RIGAORAPRIMA="$(( SCADENZA - 60*60 )) $DATA $ORA $DESCRIZIONE"
	grep -qx "$RIGAGIORNOPRIMA" "$FILEALLARMI" || echo "$RIGAGIORNOPRIMA" >> "$FILEALLARMI" #accoda al file delle scadenze solo quelle che non sono gia presenti
	grep -qx "$RIGAORAPRIMA" "$FILEALLARMI" || echo "$RIGAORAPRIMA" >> "$FILEALLARMI"
done

removeAlerts "$1" "$2"