* Make nix.conf changes deterministic
* Add mac fixture
* Warn/error if user settings don't match our needs
* Repair mac fixture
* fmt
* clipster
* Tidy up some feedback
* fmt
* resolve some nits
* Handle a MacOS service being disabled during bootstrap
* Handle service disabled in configure_init_service
* Fixup missed line
* Fix import
* Don't deref pointer
* Tweak detection and re-enablement
* Add time machine exclusions for Mac
* Prod CI
* Stub out mac test for a remote build
* Add plan changes
* wip
* Move the exclusions to be later
* Fixups
* Use pathbufs
* Import pathbuf
* Update test plans
* 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
* 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!
* 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
* 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
* Enable deleting users and groups on Mac
* Scaffold user change
* Add a warning if it doesn't work in situations we expect it to not work
* Scaffold out doing group member ship -- maybe we need an AddGroup action
* AddUserToGroup action
* Update plans
* Improve messaging
* Nit in error message
* Repair some review nits