diff options
author | June McEnroe <june@causal.agency> | 2021-04-27 19:02:07 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-04-27 19:02:07 -0400 |
commit | 0e7a232b4fec24afc880a7f1c79f54103b4a694f (patch) | |
tree | 651c8c48610bf7153e88da5340cc7dc895f349ec | |
parent | Use QueryCap for select (diff) | |
download | litterbox-0e7a232b4fec24afc880a7f1c79f54103b4a694f.tar.gz litterbox-0e7a232b4fec24afc880a7f1c79f54103b4a694f.zip |
Interpret -D, -a, -b as local time with -L
Diffstat (limited to '')
-rw-r--r-- | scoop.1 | 10 | ||||
-rw-r--r-- | scoop.c | 38 |
2 files changed, 41 insertions, 7 deletions
diff --git a/scoop.1 b/scoop.1 index 51ad6c7..1a66040 100644 --- a/scoop.1 +++ b/scoop.1 @@ -1,4 +1,4 @@ -.Dd May 20, 2020 +.Dd April 27, 2021 .Dt SCOOP 1 .Os . @@ -68,7 +68,13 @@ see The default format is ISO 8601. . .It Fl L -Output timestamps in local time. +Output timestamps in local time +and interpret timestamps in +.Fl D , +.Fl a +and +.Fl b +as local time. . .It Fl N Ar network Match events from diff --git a/scoop.c b/scoop.c index 95fb794..6c2957b 100644 --- a/scoop.c +++ b/scoop.c @@ -364,9 +364,19 @@ int main(int argc, char *argv[]) { append( where, SQL( - AND events.time >= strftime('%s', :date, 'start of day') - AND events.time - < strftime('%s', :date, 'start of day', '+1 day') + AND events.time >= + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', 'utc') + ELSE + strftime('%s', :date, 'start of day') + END + AND events.time < + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', '+1 day', + 'utc') + ELSE + strftime('%s', :date, 'start of day', '+1 day') + END ) ); binds[n++] = Bind(":date", optarg, 0); @@ -389,11 +399,29 @@ int main(int argc, char *argv[]) { binds[n++] = Bind(":target", optarg, 0); } break; case 'a': { - append(where, SQL(AND events.time >= strftime('%s', :after))); + append( + where, + SQL( + AND events.time >= + CASE WHEN :local + THEN strftime('%s', :after, 'utc') + ELSE strftime('%s', :after) + END + ) + ); binds[n++] = Bind(":after", optarg, 0); } break; case 'b': { - append(where, SQL(AND events.time < strftime('%s', :before))); + append( + where, + SQL( + AND events.time < + CASE WHEN :local + THEN strftime('%s', :before, 'utc') + ELSE strftime('%s', :before) + END + ) + ); binds[n++] = Bind(":before", optarg, 0); } break; case 'c': { |