jiff/examples/uptime
Andrew Gallant 08abeadd09 tz: fallback to Etc/Unknown when TZ is set to an invalid value
Previously, when `TZ` was set to an invalid value, Jiff would still
attempt to detect the system configured time zone. But this is arguably
not great, because it silently (aside from logs) rejects an invalid
`TZ` value. In reality, if `TZ` is set, it is likely that the user
intends for it to have an impact. So if it doesn't, we should bleat
about it.

This manifests as an error when using `TimeZone::try_system()` and
manifests as a error sentinel in the form of `Etc/Unknown` when using
`TimeZone::system()`.

We also tweak some of the logging levels. Namely, in #370, I increased
the number of TRACE-level log messages, which makes it much noisier. So
I've promoted a few things that were TRACE to DEBUG without making the
output much noisier. I guess TRACE should be reserved for variable
length things.

Fixes #364
2025-05-17 11:02:57 -04:00
..
Cargo.toml cargo: restore sanity to iterative development 2025-04-10 20:54:30 -04:00
main.rs tz: fallback to Etc/Unknown when TZ is set to an invalid value 2025-05-17 11:02:57 -04:00
README.md first substantial commit 2024-07-21 20:15:13 -04:00

This example shows how to parse the output of uptime on Unix and determine when the system booted. This demonstrates regex parsing, fallible construction of spans, zone aware arithmetic and rounding.

To run this program, use:

$ uptime | cargo run -qp uptime
2024-06-28T08:08:00-04:00[America/New_York]

If you don't have uptime, then you can pipe in data that looks like it came from uptime:

$ echo '14:00:47 up 12 days,  5:53' | cargo run -qp uptime
2024-06-28T08:08:00-04:00[America/New_York]