#!/bin/bash

# Prüfen, ob die CMOS-Uhr überhaupt für das Wakeup verstellt wurde.
if [ -r /etc/timediff ]; then
  # Dazu das Änderungsdatum der Datei /etc/timediff besorgen -- damit ist
  # zweifelsfrei klar, wann settime die Zeitdifferenz geschrieben hat. Liegt
  # die momentane Rechner-Zeit *vor* dem Änderungsdatum von /etc/timediff,
  # müssen wir die Zeitdifferenz wieder ausgleichen.
  Timediff=`date -r /etc/timediff +%s`
  Now=`date +%s`
  
  if [ "${Timediff}" -gt "${Now}" ]; then
    # Die Rechnerzeit liegt in der Vergangenheit, die Differenz zur lokalen
    # Zeit ist in /etc/timediff gespeichert
    Diff=`cat /etc/timediff | head -n 1`
    date -s "+${Diff} seconds" >/dev/null
    # CMOS-Uhr aktualisieren
    hwclock -w --noadjfile --utc
    echo "Correcting system time by ${Diff} seconds..."
    exit 0
  fi
fi
echo "No need to correct system time."
