|  | #!/usr/bin/env 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} |