From 45d6888c4be775ac434e7d0cf151dded02c3bae2 Mon Sep 17 00:00:00 2001 From: Steven Xie Date: Thu, 27 Dec 2018 07:58:15 -0500 Subject: [PATCH] Animated grade-polling timer --- cmd/grades.go | 10 +++++++--- cmd/interactive.go | 6 ++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cmd/grades.go b/cmd/grades.go index 61c5008..7a23db5 100644 --- a/cmd/grades.go +++ b/cmd/grades.go @@ -135,9 +135,13 @@ check: interval := time.Duration(rng.Int63n(int64(gradesMaxPollInterval- gradesMinPollInterval))) + gradesMinPollInterval - interact.Errf("Checking again in %.f seconds (press ctrl-c to stop).\n", - interval.Seconds()) - time.Sleep(interval) + for interval >= 0 { + interact.Errf("\rChecking again in %.f seconds (press ctrl-c to stop).", + interval.Seconds()) + time.Sleep(time.Second) + interval -= time.Second + } + interact.Errln() goto check } return nil diff --git a/cmd/interactive.go b/cmd/interactive.go index d98f88b..30c56ac 100644 --- a/cmd/interactive.go +++ b/cmd/interactive.go @@ -84,8 +84,10 @@ func interactiveHelp() { } // Add custom entries: - entries = append(entries, HelpEntry{"poll", "Poll grades repeatedly, every " + - "30s."}) + entries = append(entries, HelpEntry{ + "poll", + gradesCmd.GetFlag("poll").Model().Help, + }) entries = append(entries, HelpEntry{"quit", "Quit interactive mode."}) fmt.Println("Commands:")