##!/bin/bash

# The script tries to read last written system time from file defined by variable fileName, and set current time to that value.
# If file does not exist, then it sets time to hard coded value.
# This way system time is set close enough to actual time, and validation of root CA certificate by ThingWorx sample application should succeed.

# Default time, which is set if file does not exist or setting time using file fails.
# Format:YYYY-MM-DD
DEFAULT_DATE=2020-03-04

# Name of file, where current time is saved.
fileName=/opt/thingworx/systemTime.txt

ec=0

# Function which sets time:
setTimeFromFile ()
{
	current_year=$(date +'%Y')
	if [ "$current_year" -lt "2018" ]; then
		if [ -f $fileName ]; then
			newTime=`cat $fileName`
			if [[ -z "$newTime" ]]; then
				echo "Could not read time from file [$fileName]. Setting time to hard coded UTC date [$DEFAULT_DATE]"
				date -s "$DEFAULT_DATE 00:00:00"
			else
				echo "Setting system time to value [$newTime] saved in file [$fileName]".
				date -s "$newTime"
				ec=$?
				echo "Result of time reset is " $ec
				if [ "$ec" -eq "0" ]; then
					fileStatus="System time is reset to last saved UTC time $newTime."
				else
					echo "Failed set time to saved value, setting time to hard coded UTC date [$DEFAULT_DATE]"
					date -s "$DEFAULT_DATE 00:00:00"
				fi
			fi
		else
			echo "File [$fileName] not found, setting time to hard coded UTC date [$DEFAULT_DATE]"
			date -s "$DEFAULT_DATE 00:00:00"
		fi
	fi
}

# set system time:
setTimeFromFile
