aboutsummaryrefslogtreecommitdiff
path: root/src/nix/doctor.cc
AgeCommit message (Collapse)Author
2024-04-08"but doctor, I AM the untrusted store": nix doctor had wrong trustednessJade Lovelace
This probably snuck in in a refactor using truthiness or so. The trustedness flag was having the optional fullness checked, rather than the actual contained trust level. Also adds some tests. ``` m1@6876551b-255d-4cb0-af02-8a4f17b27e2e ~ % nix store ping warning: 'nix store ping' is a deprecated alias for 'nix store info' Store URL: daemon Version: 2.20.4 Trusted: 0 m1@6876551b-255d-4cb0-af02-8a4f17b27e2e ~ % nix doctor warning: 'doctor' is a deprecated alias for 'config check' [PASS] PATH contains only one nix version. [PASS] All profiles are gcroots. [PASS] Client protocol matches store protocol. [INFO] You are trusted by store uri: daemon ``` Fixes: https://git.lix.systems/lix-project/lix/issues/232 Change-Id: I21576e2a0a755036edf8814133345987617ba3d0
2024-03-17Delete hasPrefix and hasSuffix from the codebaseJade Lovelace
These now have equivalents in the standard lib in C++20. This change was performed with a custom clang-tidy check which I will submit later. Executed like so: ninja -C build && run-clang-tidy -checks='-*,nix-*' -load=build/libnix-clang-tidy.so -p .. -fix ../tests | tee -a clang-tidy-result Change-Id: I62679e315ff9e7ce72a40b91b79c3e9fc01b27e9
2023-04-06Add `Store::isTrustedClient()`matthewcroughan
This function returns true or false depending on whether the Nix client is trusted or not. Mostly relevant when speaking to a remote store with a daemon. We include this information in `nix ping store` and `nix doctor` Co-Authored-By: John Ericson <John.Ericson@Obsidian.Systems>
2023-04-03Stuctured command stabilityJohn Ericson
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see #5930 and #7798.)
2023-03-02Remove FormatOrString and remaining uses of format()Eelco Dolstra
2022-04-05doctor: Always show the outputThéophane Hufschmitt
Fix https://github.com/NixOS/nix/issues/6342
2020-10-09Split out `local-fs-store.hh`John Ericson
This matches the already-existing `local-fs-store.cc`.
2020-10-06Remove static variable name clashesEelco Dolstra
This was useful for an experiment with building Nix as a single compilation unit. It's not very useful otherwise but also doesn't hurt...
2020-07-17Remove StoreType abstraction and delegate regStoreCarlo Nucera
to each Store implementation. The generic regStore implementation will only be for the ambiguous shorthands, like "" and "auto". This also could get us close to simplifying the daemon command.
2020-05-05nix doctor: ConsistencyEelco Dolstra
2020-05-05nix --help: Group commandsEelco Dolstra
2019-12-05nix doctor: Fix typoEelco Dolstra
(cherry picked from commit 96c6b08ed7f99be84cb1816515a368392d19dbb5)
2019-12-05Make subcommand construction in MultiCommand lazyEelco Dolstra
(cherry picked from commit a0de58f471c9087d8e6cc60a6078f9940a125b15)
2019-11-22getEnv(): Return std::optionalEelco Dolstra
This allows distinguishing between an empty value and no value.
2019-10-06nix doctor: add more logging output to checksBenjamin Hipple
When running nix doctor on a healthy system, it just prints the store URI and nothing else. This makes it unclear whether the system is in a good state and what check(s) it actually ran, since some of the checks are optional depending on the store type. This commit updates nix doctor to print an colored log message for every check that it does, and explicitly state whether that check was a PASS or FAIL to make it clear to the user whether the system passed its checkup with the doctor. Fixes #3084
2018-10-29nix doctor: return nonzero exitcode if a check failsDaiderd Jordan
This makes it easier to use this when testing the installer or when running the checks with other automated tooling.
2018-10-27Fix signedness warningEelco Dolstra
2018-09-26nix doctor: reimplement profile warning without gcroot checkDaiderd Jordan
Calculating roots seems significantly slower on darwin compared to linux. Checking for /profile/ links could show some false positives but should still catch most issues.
2018-09-02nix doctor: only perform path/profile checks with a daemon/local storeDaiderd Jordan
Not all store types LegacySSHStore support these operations and it doesn't really make sense to check those.
2018-09-02nix doctor: add check for profile rootsDaiderd Jordan
In most cases profiles that are in PATH should have a gcroot.
2018-09-02nix doctor: add warning for multiple versionsDaiderd Jordan
It's pretty easy to unintentionally install a second version of nix into the user profile when using a daemon install. In this case it looks like nix was upgraded while the nix-daemon is probably still unning an older version.
2018-09-02nix doctor: handle serve protocolDaiderd Jordan
The serve protocol used by LegacySSHStore has a different major and shouldn't be compared to PROTOCOL_VERSION.
2018-09-02nix doctor: add warning if client/daemon protocol mismatchesDaiderd Jordan
A protocol mismatch can sometimes cause problems when using specific features with an older daemon. For example: Nix 2.0 changed the way files are compied to the store. The daemon is backwards compatible and can still handle older clients, however a 1.11 nix-daemon isn't forwards compatible.
2018-09-02nix doctor: add commandDaiderd Jordan
Inspired by the homebrew command, shows a combination of debugging information and warnings with potential issues with a nix installation.