#!/bin/bash
# vim: cindent:shiftwidth=4:tabstop=4:smarttab:textwidth=100

function TIME_OFFSET {
	local time_format_version="$1"

	case $time_format_version in
		18)
			#usage: sel time set "mm/dd/yyyy hh:mm:ss"
			local date_ipmi_raw_new=$(date --utc +"%m/%d/%Y %H:%M:%S")
			ipmitool sel time set "$date_ipmi_raw_new"
			;;
		19)

			# "lib/ipmi_sel.c"
			# const char *time_format = "%x %X"; /* Use locale-defined format */
			local time_format="%x %X"
			local date_ipmi_raw=$(LC_TIME=generic date +"$time_format")

			# ipmitool 1.8.19 clock setting routines are messed up
			# since they attempt double time zone coversion
			# workaround/hack:
			local date_ipmi_utc=$(LC_TIME=generic date --date="$date_ipmi_raw UTC" +"%x %X")

			LC_TIME=generic ipmitool sel time set "$date_ipmi_utc"
			;;
		*)
			exit 1
	esac
}
