* Handle the APFS volume not existing but the Service and Fstab being present
* Add handling if we need to bootout the service
* Spelling
* Rename enum
* Uninstall shouldn't fail fast
* wip
* wip
* No longer fails fast
* Tidy up error handling
* Touchup post merge
* Refactor nix tests
* Some minor fixes
* Uninstall fail tests
* Fiddle with messaging
* nixfmt
* Tweak display a bit
* fix docs
* Fix Mac
* Revert setting I was testing
* Reflect feedback about a log level
* Update both zshenv and zshrc
* Update only zshrc
* Add troubleshooting section
* Correct diagnostics note in readme
* Quirks!
* Remove a period
* Improve wording
* Tidy readme a bit
* Unforget a period
* Add ssl-cert-file option
* Add reqwest support for ssl cert
* Fix build
* Include in install differences
* Handle weird paths, include ENV setting in instructions
* Add install script cure tests
* Add missing stuff from commit
* Fix installer-test-fedora-v36-install-script-multi-broken-daemon-disabled
* Do some renaming
* Speeling
* Tweak permissions since Mac apparently has no root group
* Make `nix-installer plan invalid-plan` fail
Prior to this change, the `invalid-plan` would unexpectedly be
interpreted as the output path. Now there is a flag to specify where the
plan should be written to.
* use `out-file` and `NIX_INSTALLER_PLAN_OUT_FILE`
* Include user index in the user comment
If they're all called "Nix build user", anywhere that shows up without
the uid / username would make it difficult to diagnose any issues that
may occur.
* Create users 1-32 instead of 0-31
The official install scripts start at 1 as well.
* Update fixtures
Yes, I hand-edited the macos json, sue me.
* fixup: accept a comment, not the index
* fixup: comment, not index
* wip
* Do main editing portion
* Some more curing on fstab entries
* Overwrite fstab instead of append
* Add newline
* Improve --explain output for CreateNixVolume
* Tweak some permissions
* Fixup a few more permissions spots
* Improve encrypted volume handling
* Handle APFS volumes existing already to some degree
* Correct speeling
* More tweaking preparing for bootstrap/kickstart work
* Most of volume curing works
* Make kickstart use domain/service too
* Fixup nits
* Fix a missing format!
* Cure existing systemd units
* ActionError::Exists -> ActionError::DifferentContent
To more accurately reflect its associated error message.
* create_directory: use PathWasNotDir error instead
* check if the service files and an override dir exists in plan and execute
* fixup: target_os guarding
* fixup: check if existing file is a symlink and see if they link to the same place
* abstract systemd unit checking to function
* fixup: logic error
if the link_dest and unit_src were the same, we'd still error that the
file exists
* Curing existing /nix
* Fixup macs
* Suggest an uninstall command if the binary is not present
* Fixup some nits
* Skip a not great suggestion
* Suggest a nice url
* wip: add more context to errors
* Add a bunch fo context
* Repair source handling
* Add remaining contexts
* Add some context, but some of it is not right...
* Tidy up contexts properly
* Get command errors working how I want
* Remove some debug statements
* Repair mac build
* Move typetag to Action
* newtypes!
* Fix doctest
* Detect WSL1 and error
WSL1 is not supported because some things Nix relies on to work are not
available.
* Update linux.rs
* Add link to MS docs on WSL1 -> WSL2 upgrade
* Add newline to end of `plan` json output
This causes some shells (like sh) to continue their prompt right after
the closing brace, which is kinda meh.
* Add newline to end of `receipt.json`
`cat /nix/receipt.json` has the same issue as the previous commit, in
that it will bleed into the prompt for some shells that don't insert an
implicit newline.
* Add newline to end of fixture json documents