#!/bin/bash

if [[ -z "$1" ]]; then
        echo "Usage: $0 <timestamp>" >&2
        exit 1
elif [[ -z "$2" ]]; then
        date="$1"
else
        date="$1 $2"
fi

date_end=$(date --date="$date" +%s 2>/dev/null);

if [[ ! $? -eq 0 ]]; then
        echo "error: invalid date" 2>&1
        exit 1
fi

if [[ $date_end -le $(date +%s) ]]; then
        echo "error: end time is lower or eqal start time" >&2
        exit 1
fi

echo "i sleep until $(date --date="$date" "+%Y-%m-%d %H:%M:%S") ..."

while [[ $(date +%s) -le $date_end ]]; do
        sleep 1
done

exit 0


