#!/bin/bash

#
# Copyright (c) 2015 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

exe_name=$(basename $0)

# outputs the date and time in pre-set formats
# default format is: 20150114-181112
# usage: timestamp [-a] [-d] [-u] [-s] [-S]
# where: -a changes default to: 2015-01-14-18-11-56
#        -d changes default to: 20150114
#        -u changes default to: 20150114_181201
#        -s changes default to: 20150114-1812.04
#        -S changes default to: 20150114-1812
# Some switches can be mixed and matched, eg. -Sa gives 2015-01-14-18-13

date_format="%Y%m%d"
time_format="%H%M"
seconds_format="%S"
seconds_separator=""
date_time_separator="-"

function usage {
	printf "usage: %s [-a] [-d] [-u] [-s] [-S]\n" $exe_name >&2
}

function fail {
	usage
	exit -1
}

function get_opts {
	declare -r optstr="adusSh"
	while getopts ${optstr} opt; do
		case ${opt} in
		a) all_separated=1 ;;
		d) date_only=1 ;;
		u) date_time_separator="_" ;;
		s) seconds_separator="." ;;
		S) no_seconds=1 ;;
		h) usage; exit 0 ;;
		*) fail ;;
		esac
	done
}

get_opts $@

if [ x${all_separated} == x1 ]; then
	date_format="%Y-%m-%d"
	time_format="%H-%M"
	seconds_separator="-"
fi

if [ x${date_only} == x1 ]; then
	date_time_separator=""
	time_format=""
	seconds_format=""
	seconds_separator=""
fi

if [ x${no_seconds} == x1 ]; then
	seconds_format=""
	seconds_separator=""
fi

output_date=${date_format}${date_time_separator}
output_time=${time_format}${seconds_separator}${seconds_format}
output=$(date +${output_date}${output_time})

echo ${output}
