From aa6ae879cc5ba876d38499070859512af8edc4d7 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 16 Jan 2020 11:47:45 -0500 Subject: Add scoop flag for local time --- scoop.1 | 9 ++++++--- scoop.c | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/scoop.1 b/scoop.1 index 0d41c12..af03b6e 100644 --- a/scoop.1 +++ b/scoop.1 @@ -1,4 +1,4 @@ -.Dd January 4, 2020 +.Dd January 16, 2020 .Dt SCOOP 1 .Os . @@ -8,7 +8,7 @@ . .Sh SYNOPSIS .Nm -.Op Fl gpqv +.Op Fl Lgpqv .Op Fl D Ar date .Op Fl F Ar format .Op Fl N Ar network @@ -69,7 +69,10 @@ similar to .Xr strftime 3 , see .Aq Lk https://www.sqlite.org/lang_datefunc.html . -The default format is ISO8601. +The default format is ISO 8601. +. +.It Fl L +Output timestamps in local time. . .It Fl N Ar network Match events from diff --git a/scoop.c b/scoop.c index 006a416..7fb9e28 100644 --- a/scoop.c +++ b/scoop.c @@ -227,7 +227,18 @@ static const char *Inner = SQL( SELECT contexts.network, contexts.name AS context, - strftime(coalesce(:format, '%Y-%m-%dT%H:%M:%SZ'), events.time) AS time, + CASE WHEN :local THEN + strftime( + coalesce(:format, '%Y-%m-%dT%H:%M:%S'), + events.time, + 'localtime' + ) + ELSE + strftime( + coalesce(:format, '%Y-%m-%dT%H:%M:%SZ'), + events.time + ) + END AS time, events.type, names.nick, names.user, @@ -365,11 +376,12 @@ int main(int argc, char *argv[]) { const char *where = NULL; int opt; - const char *Opts = "D:F:N:T:a:b:c:d:f:gh:l:m:n:pqst:u:vw:"; + const char *Opts = "D:F:LN:T:a:b:c:d:f:gh:l:m:n:pqst:u:vw:"; while (0 < (opt = getopt(argc, argv, Opts))) { switch (opt) { break; case 'D': binds[n++] = Bind(":date", optarg, 0); break; case 'F': binds[n++] = Bind(":format", optarg, 0); + break; case 'L': binds[n++] = Bind(":local", NULL, 1); break; case 'N': binds[n++] = Bind(":network", optarg, 0); break; case 'T': binds[n++] = Bind(":target", optarg, 0); break; case 'a': binds[n++] = Bind(":after", optarg, 0); -- cgit 1.4.1