Update Standards-Version to 3.9.5
[fake-hwclock.git] / fake-hwclock
index f36a615..e9ba7f1 100755 (executable)
@@ -19,16 +19,33 @@ if [ "$COMMAND"x = ""x ] ; then
     COMMAND="save"
 fi
 
+FORCE=false
+if [ "$2"x = "force"x ] ; then
+    FORCE=true
+fi
+
 case $COMMAND in
     save)
-        date -u '+%Y-%m-%d %H:%M:%S' > $FILE;;
+        date -u '+%Y-%m-%d %H:%M:%S' > $FILE
+        ;;
     load)
         if [ -e $FILE ] ; then
-            date -u -s "`cat $FILE`"
+            SAVED="$(cat $FILE)"
+            SAVED_SEC=$(date -u -d "$SAVED" '+%s')
+            NOW_SEC=$(date -u '+%s')
+            if $FORCE || [ $NOW_SEC -le $SAVED_SEC ] ; then
+                date -u -s "$SAVED"
+            else
+                echo "Current system time: $(date -u '+%Y-%m-%d %H:%M:%S')"
+                echo "fake-hwclock saved clock information is in the past: $SAVED"
+                echo "To set system time to this saved clock anyway, use \"force\""
+            fi      
         else
             echo "Unable to read saved clock information: $FILE does not exist"
-        fi;;
+        fi
+        ;;
     *)
         echo $0: Unknown command $COMMAND
-        exit 1;;
+        exit 1
+        ;;
 esac