I had changed how this was parsed in-code but I forgot to update the default configs. This also adds some e2e tests to hopefully catch this all for real in the future, since the schema ones don't catch this stuff and the constants test doesn't actually run the binary for a proper e2e test.
Ideally we minimize our usage of Cirrus CI, especially for typical PR CI workflows, since it's a bit cludgy to work with. This method is also more extendable to things like OpenBSD.
Fine for deploys I guess since that's not super frequent and at this point I have that working fairly well when automated + I don't usually have to wait for it.
Actually support $XDG_CONFIG_HOME on macOS. Apparently in our docs we also say we do, but we, uh, don't, because dirs doesn't.
Note this is backwards-compatible, in that if a config file exists in the old default locations, we will check those first.
* other: show N/A for Nvidia GPUs if we detect one but can't get the temperature
* refactor: driveby refactor of filter system and code for temp
* missed one
* update changelog
* add another lib test to make sure valid integration configs are actually valid
* only test these on default config
* clippy
* add extra CI fail check
* fix windows
* bug: fix occasionally wrong runtime reported by sysinfo
Seems like on other platforms, sysinfo will sometimes report a run time
that starts from UNIX epoch - this gives a non-sensical value of 19000+
days, and it at least looks a little more reasonable to just return 0 in
this case. I guess we can also make it return N/A in the future but this
is a quick fix for now.
* update changelog
Basically, I did:
```
long = "blah blah blah"
```
but it should have been:
```
long,
long_help = "blah blah blah"
```
The former makes the _long help flag_ the description which... well,
isn't right.
Updates some outdated docs on filtering, and adds some tests as well. In particular, this also adds a cfg_attr on tests to try and catch unknown fields; we'll be more lenient in prod builds though and allow them.
I was mostly just using the time crate for local log debugging and just to avoid converting seconds to h/m/s.
This PR makes it so we are only using it for local log debugging.
A loooooong time ago (wow, it's been 4 years apparently...), I made the brilliant (/s) decision to use both lib.rs and main.rs because I was trying to add tests in the tests folder that needed private access to some functions in the src - and at the time, the only way I could think of doing so was exposing bottom as a library and a binary.
This isn't necessarily bad, but for my use case, it's pretty unnecessary nowadays (since I've moved all my tests back into the source files) and adds complexity in looking for certain things, so it's high time we move things around and remove lib.rs. I also took the time to clean up some weird code I spotted along the way.
* other: organize some utility function files
* deps: remove kstring
* refactor: some naming changes
* refactor: some more small refactoring/naming changes
* simplify to_cell to return a Cow
* enable lints