summaryrefslogtreecommitdiff
path: root/cmd/statrep/clock.ha
diff options
context:
space:
mode:
authorJulian Hurst <julian.hurst@digdash.com>2024-10-22 18:37:21 +0200
committerJulian Hurst <julian.hurst@digdash.com>2024-10-22 18:37:21 +0200
commitaa5a442284b2caf09cfbad0bf79756da757e5179 (patch)
treec0561abaf8a855452b2bcfe58a8a1395ea3e975c /cmd/statrep/clock.ha
downloadstatusdaemon-aa5a442284b2caf09cfbad0bf79756da757e5179.tar.gz
Initial commit
Diffstat (limited to 'cmd/statrep/clock.ha')
-rw-r--r--cmd/statrep/clock.ha46
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/statrep/clock.ha b/cmd/statrep/clock.ha
new file mode 100644
index 0000000..f1e65fb
--- /dev/null
+++ b/cmd/statrep/clock.ha
@@ -0,0 +1,46 @@
+use time::date;
+use memio;
+use strings;
+use encoding::utf8;
+use io;
+use ev;
+
+type clock = struct {
+ section: section,
+ value: str,
+};
+
+fn buildclock() (clock | io::error | utf8::invalid) = {
+ const d = date::now();
+ let s = memio::dynamic();
+ defer io::close(&s)!;
+ date::format(&s, "%A %F %T", &d)?;
+ const val = strings::dup(memio::string(&s)?);
+ return clock {
+ section = section {
+ label = "clock: ",
+ },
+ value = val,
+ };
+};
+
+fn updateclock(clock: *clock) (void | io::error | utf8::invalid) = {
+ const d = date::now();
+ let s = memio::dynamic();
+ defer io::close(&s)!;
+ date::format(&s, "%A %F %T", &d)?;
+ const val = strings::dup(memio::string(&s)?);
+ free(clock.value);
+ clock.value = val;
+};
+
+fn finishclock(clock: *clock) void = {
+ free(clock.value);
+};
+
+fn clocktimerf(file: *ev::file) void = {
+ let server = ev::getuser(file): *server;
+ updateclock(&server.status.clock)!;
+ printstatus(server.status);
+};
+