|
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
In the [2.0.0](https://github.com/ardaku/whoami/releases/tag/v2.0.0)
series, `whoami` removed all infallible function variants, and removed
the `fallible` module, moving those functions to the root module.
Therefore, I replaced `whoami::fallible::hostname` with
`whoami::hostname` (the same function with the same signature, just
moved to the root module).
For `whoami::username`, the infallible function that `atuin` was using
before is gone, and we must add error handling. I chose to fall back to
the string `"unknown-user"` if getting the username fails, just as
`"unknown-host"` is already the fallback when getting the hostname
fails. This seemed reasonable to me, but it’s worth double-checking if
there could be any unintended consequences, especially if `unknown-user`
happens to be a real, valid username on the system. The alternatives I
can see would be to panic on failure or to amend the signature of
`get_username()` and all of its call sites with some kind of more
graceful error handling (what?).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
|
Hi!
I've been trying to get atuin set up on the illumos machine I built for work
@oxidecomputer, and I ran into a few issues which are fixed here:
1. The `clipboard` feature was only supported on Windows, Mac and Linux. I've
added a platform gate for that.
2. The `atomic-write-file` crate needed an update to the version of `nix` --
that is included.
3. As part of this, I found a [security
bug](https://rustsec.org/advisories/RUSTSEC-2024-0020.html) in the whoami
crate. The bug has been fixed upstream and I've included it.
whoami 1.5.0 deprecates the `hostname` function, which produced some fresh
warnings. While fixing the warnings I also took the liberty of doing some
code rearrangement, adding a few functions that wrap some common operations. I
didn't really know where to put those functions, so I created a new `utils`
module for it. If you have a better place to put them, I'm happy to change
the PR.
Feel free to make any changes to this PR if you like before landing it, or to
ask for review.
As a followup I'm also happy to set up a cross-compile build for atuin on
illumos. It's a bit harder to run tests in CI for illumos at the moment, but
I'm trying to get a project started up to make that happen in the future as
well.
|