blob: a88cabffe47c8bb6b13addb1e1b459cb38ca05be [file] [log] [blame]
Inaky Perez-Gonzalez8ddf82c2015-04-10 16:44:37 -07001#!/bin/bash
2
3#
4# Copyright (c) 2015 Wind River Systems, Inc.
5#
David B. Kinderac74d8b2017-01-18 17:01:01 -08006# SPDX-License-Identifier: Apache-2.0
Inaky Perez-Gonzalez8ddf82c2015-04-10 16:44:37 -07007#
8
9exe_name=$(basename $0)
10
11# outputs the date and time in pre-set formats
12# default format is: 20150114-181112
13# usage: timestamp [-a] [-d] [-u] [-s] [-S]
14# where: -a changes default to: 2015-01-14-18-11-56
15# -d changes default to: 20150114
16# -u changes default to: 20150114_181201
17# -s changes default to: 20150114-1812.04
18# -S changes default to: 20150114-1812
19# Some switches can be mixed and matched, eg. -Sa gives 2015-01-14-18-13
20
21date_format="%Y%m%d"
22time_format="%H%M"
23seconds_format="%S"
24seconds_separator=""
25date_time_separator="-"
26
27function usage {
28 printf "usage: %s [-a] [-d] [-u] [-s] [-S]\n" $exe_name >&2
29}
30
31function fail {
32 usage
33 exit -1
34}
35
36function get_opts {
37 declare -r optstr="adusSh"
38 while getopts ${optstr} opt; do
39 case ${opt} in
40 a) all_separated=1 ;;
41 d) date_only=1 ;;
42 u) date_time_separator="_" ;;
43 s) seconds_separator="." ;;
44 S) no_seconds=1 ;;
45 h) usage; exit 0 ;;
46 *) fail ;;
47 esac
48 done
49}
50
51get_opts $@
52
53if [ x${all_separated} == x1 ]; then
54 date_format="%Y-%m-%d"
55 time_format="%H-%M"
56 seconds_separator="-"
57fi
58
59if [ x${date_only} == x1 ]; then
60 date_time_separator=""
61 time_format=""
62 seconds_format=""
63 seconds_separator=""
64fi
65
66if [ x${no_seconds} == x1 ]; then
67 seconds_format=""
68 seconds_separator=""
69fi
70
71output_date=${date_format}${date_time_separator}
72output_time=${time_format}${seconds_separator}${seconds_format}
73output=$(date +${output_date}${output_time})
74
75echo ${output}