* 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
* 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
* 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