From ea7b978d7a4d037d60a610513d187dc5a292bc4d Mon Sep 17 00:00:00 2001 From: Nick Van Doorn Date: Sun, 23 Jun 2019 17:23:19 -0700 Subject: Support forcing message --- core.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/core.c b/core.c index 18b1925..1f3ac67 100644 --- a/core.c +++ b/core.c @@ -54,22 +54,28 @@ void gitrolex_parseArgs(struct State_t *s, int argc, const char *argv[]) { // TODO return a message/status such that we can test this // (printing directly to the screen makes this hard) -enum Error_t gitrolex_status(struct State_t *s) { +enum Error_t gitrolex_status(struct State_t *s, bool force) { enum DatabaseError_t r; char msg[512]; int size = 2048; struct TimeEnty_t entries[2048]; + const char *template = "You've been working on %s for %ld seconds"; r = database_getEntries(s->taskArgs, entries, &size); if(r != OK || size <= 0) { printError("Failed to read from db"); return OK; } else if (size == 1) { - sprintf(msg, "Starting %s", s->taskArgs); + if(force) { + sprintf(msg, template, s->taskArgs, time(NULL) - entries[0].datetime); + } + else { + sprintf(msg, "Starting %s", s->taskArgs); + } } else { long workingTime = gitrolex_calculateWorkingTime(entries, size); - sprintf(msg, "You've been working on %s for %ld seconds", s->taskArgs, workingTime); + sprintf(msg, template, s->taskArgs, workingTime); } printInfo(msg); return OK; @@ -100,7 +106,7 @@ enum Error_t pushNow(struct State_t *s, bool direction) { .datetime = time(NULL) }; r = database_pushEntry(s->taskArgs, &entry); - gitrolex_status(s); + gitrolex_status(s, false); return r == DB_OK ? OK : DB_ERROR; } @@ -121,7 +127,7 @@ void gitrolex_mapStateToTask(struct State_t *s) { enum Error_t r; switch(s->task) { case STATUS: - gitrolex_status(s); + gitrolex_status(s, true); break; case EXPORT: r = gitrolex_export(s); -- cgit v1.2.3