* Some pre-release tidy and add is_ci to diagnostics
* Bump locks
* Fixup cargo-audit raised issues
* Remove a spare 'I' which we were saving for later
* rename a field
* failure_variant, not error_variant
* 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
* Set the correct permissions on the zshenv
* Update error to suggest chmod instead of delete
* Missed a formatting option
* 644, not 755
* Get a bit more specific
* Mac specific permissions
* Better support existing files with CreateFile and CreateorInsertIntoFile
* Skip instead of complete if found
* Fixup some permissions
* Fixup nix version used
* Use unix module instead of linux one
* Use unix module instead of linux one in other spot
* Also cover CreateDirectory
* Add some more tests
* Fixup messaging
* Corect some logic inversions
* Better support users/groups existing before install
* Skip instead of complete if found
* Prod CI
* Add debuging messages
* Mark completed instead of skipped
* wip
* Add dockerfile
* Add readme bits
* Fix logic inversion
* Relax init detection error
* Tidying heuristics
* Fix doc tests
* Mac supports start-daemon false
* Get VM tests working
* Add instructions
* Some target_os flagging
* More target flagging
* Fix lints
* Fixup more mac-only stuff
* cfg flag examples too
* Fix planner wording
* More os specific lint fixing
* More refinement on mac and the README
* Add new CI jobs to test no-daemon
* Use nix-installer-pr to point at branch
* Tests with no-init
* init/no-daemon are linux only
* nix tests support a per-distro all attribute
* Add working podman test
* Expand docker tests
* Add contributing notes
* format
* Support both podman and docker
* Update contributing
* Add Windows WSL test script for Ubuntu
* format nix tests
* More ignores to check-spelling
* Add systemd based wsl test
* We don't have root-only darwin
* Reflect review nits
* Reenable tests
* Restore mac plan
* Flag off os specific tests
* Better cfg flagging
* Remove dead comments
* Rework readme to look better with new sections
* Correct codeblock language
* Remove some warnings
* Add `(nix)` as a prefix to the bash prompt
Make it clearer when you're in the terminal vs. not.
* bash prompt prefix: put the project's name in the terminal
* Blame our installer for the nix.conf
* fixup: adding the version to the nix.conf
* force a space after the prefix
* CreateOrAppendFile: setuid safety
* Apply a sensible default mode if the file didn't already exist
* remove some incorrect docs
* Implement CreateOrInsertFile and use it instead of Append for shell rcs
Ubuntu's bashrc has the following lines in it:
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
This means that anything appended to the file will only take effect in
interactive sessions. However, we want noninteractive shells to have
Nix on PATH too, e.g. for remote builds. Therefore, we need to add our
snippet to the beginning of the file, not the end.
* Adjust test fixtures to match new behaviour
* interaction: indicate default for confirm correctly
* CreateOrInsertFile: use randomised temporary filename
* Fix temp file creation
* Apply permissions to temp file, not final file
The final file may not exist, and the temporary file is the one whose
permissions will actually be preserved.
* Use the right ActionError for renaming
* Test the SSH behaviour properly
* cargo fmt
* [DS-574] Write to zshenv instead of zshrc
* CreateOrInsertFile -> CreateOrInsertIntoFile
Also move appending behaviour in here.
* Update Linux fixtures
* update darwin-multi fixture
* fix fixture
* fmt
* Add metadata do Cargo.toml
* Add docs link
* wip
* Get it mostly working
* Handle empty channels, local files, offline mode
* Get them working
* Expand CONTRIBUTING.md
* Expand more
* Correct some formatting/mistypes
* More notes about steps
* Correct speeling
* Improve ubuntu naming
* Add note about specific branch/checkout testing
* Review corrections
* Change match to if
* Rename harmonic to nix-installer
* Fix build
* handle nix-install.sh rename
* Forgot some things
* Fix a mistype
* Fix env var
* Fix merge change that popped up
* Add action
* Checkout so we have actions.yml
* yaml poking
* Handle GITHUB_TOKEN
* Don't ask github to do templating, use directives for logging
* Missing changes
* Fix build error
* Fix yaml even more
* Add shell command
* Add a wait on the socket again
* Print some debugging
* Use more correct env vars
* Correct install url logic
* Use different style for inputs
* Fix yaml errror
* Tweak around local-root
* provision nix-install.sh as well
* Use nix-install.sh path directory in NIX_INSTALL_URL
* Tweak variables to hopefully work
* Call it BINARY_ROOT instead
* Add exec output
* Set no-confirm
* no echo
* Add token to workflow
* Set no-confirm properly
* Add no-confirm back for uninstall
* Correct some env and vars
* CreateDirectory respects existing symlink
* Add a few more checks to the CI
* pass valid yaml...
* Slightly more aggressive cleanup of /nix
* Ensure steam-deck cleans /home/nix
* Add steam-deck check for persistence
* Canonicalize steam-deck persistence
* Ensure absolute path
* Inverted logic sad
* python3 on mac
* Add readme info and fix a extra-conf mistype
* Add unsaved changes
* More fine grained trace logging
* Restore spans we lost in refactor
* BuiltinPlanner can accept settings
* Reflect feedback
* Push actually working code hopefully this time
* Speeling
* Minimize deps with cargo machete
* Remove default features
* Serde json gets std
* Add a few features to keep
* Reflect change sin dev-deps
* Remove bad optional
* Also remove cfg from nix build
* Move binary out of /nix if it is there during uninstall
* Add tracing
* Sorta working...
* Have expected() return an err
* Better handle expected errors during install
* Hello trailing whitespace
* Perform sudo in harmonic
* Remove sudo in scripts
* A bit more tweaking...
* Yay unix
* Use curl sh on ci
* Preserve environments we require
* Fix the yamls
* Better explain a run step
* Preserve GITHUB_PATH too
* Correct trace
* Include install-nix.sh in artifacts
* Remove unused vars
* Use /nix/harmonic for uninstall
* Only pass --preserve-env if required
* Wait for python server to start
* Use a sudo uninstall
* Pass verbosity correctly
* Pass no-confirm by env
* Pass no-confirm by env redux
* Hahaha very funny yaml
* handle env in no-confirm
* Preserve env on ci
* Mac stuff
* Perform sudo in harmonic
* Remove sudo in scripts
* A bit more tweaking...
* Yay unix
* Preserve environments we require
* Preserve GITHUB_PATH too
* Correct trace
* Remove unused vars
* Only pass --preserve-env if required
* Make plans versioned
* Delint
* speeeeeeeeling
* remove file that was dead
* Flesh out docs and improve public API
* Speeling
* Fixups
* Fix doctests
* Do a better job with actionstate
* Add some more docs
* Fix doctest
* Make CLI stuff optional
* Touchup
* Speeling
* Add fish support
* Add shell tests
* Add login shell tests
* Improve provisioning behavior of shell profiles
* Make created shell profiles executable
* Bump nix
* Try interactive shell
* Fixup merge
* Bad yaml, bad
* Tweak ci
* Set GITHUB_PATH
* Do github runner automatically
* Use GITHUB_PATH more
* use login shells again
* Ouytput github path in ci
* Okay so GITHUB_PATH is a UNIX socket?
* Okay yup they are UNIX sockets
* Have the macs dump their github path
* YAML stuff
* Pass github path in invocation
* Bump plans
* Okay it is not a socket
* Remove debugging
* Review fixes
* Pass correct shell arg to mac
* Echo github path
* Echo the path, then...
* Join GITHUB_PATH writes
* Init Steam Deck support
* Improve systemd units
* Handle stopping nix-daemon.service before stopping mount
* Better handle being in a sysext
* Add some install directions
* Add a KDE autostart script
* Tidy up uninstall
* Use stop/disable instead of disable --now
* Fixup a double-disable
* Repair some defaults
* Tidy up services
* Make ci test steam deck planner
* Delete bonus line
* Use newer image
* Get steam-deck working hopefully
* Create steamos-readonly mock
* Make stub of steamos-readonly
* Use sudo for chmod
* Attempt CI fix
* Don't add deck group
* A more clever method
* We have a new method and the CI can be cleaned a bit
* Brazenly disable sandbox on the deck ci
* Extra-conf takes vec
* Dump lsblk mount
* An even more clever method
* More debugging symbols
* More debugging symbols
* Even more debugging
* probe for issues
* Get specific with permissions and ownership (for ci)
* We are now way overboard on debugging symbols
* Specify permissions on created home stub
* Allow specifying persistence
* Cleanup debugging bits
* Fixup persistence path
* Work out some better linking in units
* units don't need executable
* Tidy
* Delint
* Remove a note from readme
* Github actions seems to have build the wrong checkout?
* Doctest repair
* Don't create directory twice
* Restore missing doc comments
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
* Make plans versioned
* Delint
* speeeeeeeeling
* remove file that was dead
* Flesh out docs and improve public API
* Speeling
* Fixups
* Fix doctests
* Do a better job with actionstate
* Add some more docs
* Fix doctest
* Make CLI stuff optional
* Touchup
* Speeling
* add skipped to ActionState
* Make plans versioned
* Delint
* speeeeeeeeling
* remove file that was dead
* Flesh out docs and improve public API
* Speeling
* Fixups
* Fix doctests
* Do a better job with actionstate
* Add some more docs
* Fix doctest
* Make CLI stuff optional
* Touchup
* Speeling
* Tidy tracing
* Forgot a few changes
* Remove more boilerplate
* Repair Plan::describe_revert
* More valid default settings
* fmt
* Use correct execute/revert calls
* Split up Linux Daemon disable and stop
* Detect state and act on it
* Fixup pathes
* Add a missing step to the mac bits
* Unload instead of disable
* Prune out again
* Squelch some stdout
* Clean lint
* Better log for no-delete-directory case
* Even more verbose messages on CreateDirectory
* Less broken code
* Use try_execute where it should be used
* Final tweaks
* Add some docs