Commit graph

51 commits

Author SHA1 Message Date
Ana Hobden ba841149e7
launchctl bootstrap fails with disabled in a dirty state (#555)
* 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
2023-07-05 13:38:50 -07:00
Ana Hobden 675d93c644
Support create_directory paths being an existing mount (#547)
* Support create_directory paths being an existing mount

* Tidy up after install even on mounts

* Repair steam deck test

* Fixup some nits
2023-07-05 09:11:57 -07:00
Ana Hobden b3a371bed1
v0.10.1-unreleased (#536) 2023-06-28 07:55:00 -07:00
Ana Hobden e3cb3725cd
Release v0.10.0 (#534) 2023-06-27 10:28:36 -07:00
Ana Hobden a962b3390b
Restore user creation on Mac (#524)
* Restore user creation on Mac

* Repair MacOS build

* Pass clone not borrow

* Fixup double group create

* Add some links
2023-06-23 10:29:47 -07:00
Ana Hobden b29a7585bd
Add self test functionality (#506)
* Add self test functionality

* Fix mac ci

* Improve erorr messaging

* i32 support

* Fixup self-test comment

* Fix review nits
2023-06-08 08:09:04 -07:00
Ana Hobden 7ec5148e6d
Add time machine exclusions for Mac (#480)
* 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
2023-05-31 13:36:44 -07:00
Ana Hobden d47968d982
Bump to v0.9.2-unreleased (#497) 2023-05-31 16:43:17 +00:00
Ana Hobden 457127bc2b
Release v0.9.1 (#484) 2023-05-30 09:05:55 -07:00
Ana Hobden e0cc66038a
Bump to v0.9.1-unreleased (#483)
* Bump to v0.9.1-unreleased

* Also get cargo files
2023-05-26 20:04:26 +00:00
Ana Hobden 5d0e28fcfb
Release v0.9.0 (#473) 2023-05-19 17:03:14 +00:00
Ana Hobden 08ef3bb82a
Test Nix 2.15 and the auto-uid-allocation feature (#196)
* Auto UID allocation

* Uncomment plan tests

* Delete legacy users on install

* Group up deleteuser actions
2023-05-05 13:54:37 -07:00
Ana Hobden e4956fe3ea
0.8.1-unreleased (#437) 2023-05-01 16:03:44 +00:00
Ana Hobden 4cc8326ee9
Release v0.8.0 (#415) 2023-04-12 14:38:17 +00:00
Ana Hobden cb48a7261b
Handle the APFS volume not existing but the Service and Fstab being present (#405)
* 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
2023-04-10 20:13:25 +00:00
Ana Hobden a10261e882
v0.7.1-unreleased (#393) 2023-03-30 08:28:26 -07:00
Ana Hobden a506ac88ee
Release v0.7.0 (#390) 2023-03-29 14:21:00 -07:00
Ana Hobden 4856cff7b6
Make shell profile locations chosen by planner (#375)
* Make shell profile locations chosen by planner

* Fix mac

* Fix fixture
2023-03-27 21:36:54 +00:00
Ana Hobden a74c6da41e
Improve Mac Volume Curing (#362)
* Improve Mac Volume Curing

* Add test

* Improve error

* Speeling

* Remove comment

* Fix escaping issue

* Reflect comments
2023-03-27 13:28:47 -07:00
Ana Hobden 775df0383f
Bump to 0.6.1-unreleased (#353) 2023-03-20 15:07:01 -07:00
Ana Hobden a9a2e4bad7
Release v0.6.0 (#352) 2023-03-20 10:31:58 -07:00
Cole Helbling 88eca9eb9c
Include user index in the user comment (#330)
* 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
2023-03-13 10:16:02 -07:00
Ana Hobden 07a48fe3bd
Cure APFS/Fstabs on Mac (#246)
* 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!
2023-03-08 12:49:13 -08:00
Ana Hobden 85abfc3cb5
Curing existing /nix (#310)
* 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
2023-03-08 18:43:57 +00:00
Ana Hobden 5fe7dd9828
Remove nix channel placement (#304)
* Remove place_channel_configuration.rs

* Remove channels option

* Add fixture updates
2023-03-08 09:24:41 -08:00
Cole Helbling c42a3f58d9
v0.5.1-unreleased (#307) 2023-03-06 12:51:43 -08:00
Cole Helbling 9d939e7885
Release v0.5.0 (#305) 2023-03-06 19:12:12 +00:00
Cole Helbling 2594316750
Integrate nix-config-parser (#263)
Co-authored-by: Ana Hobden <operator@hoverbear.org>
2023-03-06 17:29:44 +00:00
Ana Hobden 903258942c
Add more failure context / Improve error structure (#296)
* 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
2023-03-03 14:20:17 -08:00
Cole Helbling 9c8284cd06
Add newline to end of plan json output (#283)
* 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
2023-02-28 08:38:42 -08:00
Ana Hobden f9f927840d
Release v0.4.0 (#273) 2023-02-24 22:29:52 +00:00
Ana Hobden 689cf84bbf
Enable deleting users and groups on Mac (#253)
* 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
2023-02-22 07:46:52 -08:00
Ana Hobden 41fdc2d20e
Release v0.3.0 (#249) 2023-02-14 09:45:20 -08:00
Ana Hobden ab4c528595
Rename some of the planners (#243)
* Rename some of the planners

* Fixup Mac

* Also move actions

* Also update CI
2023-02-10 20:35:00 +00:00
Ana Hobden 28db9f2953
Attempt to minimize steam deck display manager restart risk (#237)
* Attempt to minimize steam deck display manager restart risk

* Fiddle a bit more

* Prod CI

* Be much more specific with services we restart
2023-02-08 11:58:48 -08:00
Ana Hobden 3d1b9f2644
v0.2.1-unreleased (#232) 2023-02-02 18:38:46 +00:00
Ana Hobden 95852f295e
Release v0.2.0 (#230) 2023-02-01 13:46:55 -08:00
Ana Hobden d69f335703
init-less install (#188)
* 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
2023-02-01 12:35:52 -08:00
Ana Hobden 23c453f371
Use a UUID instead of volume name for fstab on Mac (#215)
* Use a UUID instead of volume name for fstab on Mac

* reflect review

* Don't quote the UUID in fstab
2023-01-31 08:49:22 -08:00
Ana Hobden 39a080b7c4
v0.1.0-unreleased (#210) 2023-01-25 17:46:37 +00:00
Ana Hobden 501d7eebca
Release v0.1.0 (#208) 2023-01-20 14:45:56 -08:00
Ana Hobden 24a94ec3f9
Re-release v0.0.2 (#201) 2023-01-19 11:14:08 -08:00
Ana Hobden 17062e678a
Revert "Release v0.0.2 (#198)" (#200)
This reverts commit a29ebd7ae8.
2023-01-19 08:53:09 -08:00
Ana Hobden a29ebd7ae8
Release v0.0.2 (#198) 2023-01-18 14:05:49 -08:00
Ana Hobden 20aa4cdf0b
bump v0.0.2-unreleased (#176) 2023-01-11 16:53:06 +00:00
Ana Hobden bbeed6a729
Release v0.0.1 (#168)
* Release v0.0.1

* Bump fixtures

* Fixup upload_s3.sh

Co-authored-by: Cole Helbling <cole.helbling@determinate.systems>
2023-01-09 13:53:55 -08:00
Ana Hobden 6f50f8ad65
Rename daemon-user-count and make an alias (#159)
* Update actions too

* Fix nix_user_count to nix_build_user_count
2023-01-09 18:31:37 +00:00
Linus Heckemann f2606d3127
Linus/ds 576 nix store should be in path directly (#148)
* 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
2023-01-09 08:30:28 -08:00
Ana Hobden d299dbf0f2
Rename harmonic to nix-installer (#125)
* 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
2022-12-19 18:26:58 +00:00
Ana Hobden f58280a11a
fish support (#76)
* 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
2022-12-07 08:22:24 -08:00