]> git.scottworley.com Git - keystroke-timestamps/blob - daily-gaps.sh
Include the `fill-in` helper script here
[keystroke-timestamps] / daily-gaps.sh
1 #!/bin/sh
2
3 set -e
4
5 # Report gaps that contain the target time
6
7 target=${1:-3:30}
8 threshold=${2:-3600}
9 LOGFILE="${3:-$HOME/keystroke-timestamps.log}"
10
11 awk -vtarget="$(date -d "$target" '+%H %M %S')" -vthreshold="$threshold" -vtime_fmt="%F %T" '
12 function first_target_after(t) {
13 # TODO: Be smarter for targets near DST changes. :(
14 target_on_t_day = mktime(strftime("%Y %m %d ", t) target)
15 target_on_prev_day = mktime(strftime("%Y %m %d ", target_on_t_day - 86400) target)
16 target_on_next_day = mktime(strftime("%Y %m %d ", target_on_t_day + 86400) target)
17 if (target_on_prev_day > t) { return target_on_prev_day }
18 if (target_on_t_day > t) { return target_on_t_day }
19 return target_on_next_day
20 }
21 $1 <= 67767976233561595 {
22 if (prev && $1 - prev > threshold && $1 > first_target_after(prev)) {
23 print(strftime(time_fmt, prev), "to", strftime(time_fmt, $1), "was", $1 - prev)
24 }
25 prev = $1
26 }' "$LOGFILE"