#!/bin/bash
#
# Copyright (c) 2007 - 2023 by mod_tile contributors (see AUTHORS file)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; If not, see http://www.gnu.org/licenses/.

STATE=/opt/local/var/lib/mod_tile/.osmosis/state.txt

if [ ! -r "$STATE" ]; then
  echo "-1 seconds"
  exit 0
fi

if [[ "$OSTYPE" != "darwin"* ]]; then
  rep=$(cat ${STATE} |
    grep 'timestamp' |
    awk '{split($0, a, "="); print a[2]}' |
    tr 'T' ' ' |
    xargs -I{} ${BINPATH}date --utc --date "{}" +%s)
  is=$(date -u +%s)
else
  rep=$(cat ${STATE} |\
    awk '/timestamp=/{d = substr($1, 11, 10);t = substr($1, 22, 10); z = substr($1, 32); if (z = "Z") {z = "UTC";}; print d " " t z;}' |\
    xargs -I{} ${BINPATH}date -ju -f "%Y-%m-%d %H:%M:%S%Z" "{}" +%s)
  is=$(date -u +%s)
fi

lag=$(($is - $rep))

if [ "$1" = "-h" ]; then

  if [ $lag -gt 86400 ]; then
    echo $(($lag / 86400)) "day(s) and" $((($lag % 86400) / 3600)) "hour(s)"
  elif [ $lag -gt 3600 ]; then
    echo $(($lag / 3600)) "hour(s)"
  elif [ $lag -gt 60 ]; then
    echo $(($lag / 60)) "minute(s)"
  else
    echo $lag "second(s)"
  fi

else

  echo $lag

fi
