-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjrnltimediff
executable file
·50 lines (39 loc) · 1.34 KB
/
jrnltimediff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
# This script comes with ABSOLUTELY NO WARRANTY, use at own risk
# Copyright (C) 2017 Osiris Alejandro Gomez <[email protected]>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
die() {
echo "ERROR $1"
exit 1
}
[[ -z "$1" ]] && die "EMPTY FILE $1"
[[ ! -e "$1" ]] && die "NOT FOUND FILE $1"
[[ ! -z "$2" ]] && D2="$2"
D1=$(head -1 "$1" | cut -c -16)
[[ -z "$D1" ]] && die "@ 00:00 hs"
VALID_DATE=$(echo "$D1" | egrep -o "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}")
[[ -z "$VALID_DATE" ]] && exit 1
[[ "$D1" != "$VALID_DATE" ]] && exit 1
E1=$(date --date="$D1" +%s)
if [[ -z "$D2" ]]
then
E2=$(date --date='now' +%s)
else
DD=$(echo "$D1" | cut -c -10)
E2=$(date --date="$DD $D2" +%s)
fi
EE=$((E2-E1))
HM=$(date -d "1970-01-01 $EE seconds" +%H:%M)
echo "@ $HM hs"