Commit graph

135 commits

Author SHA1 Message Date
Ana Hobden 8745a85192
Minimize deps with cargo machete (#120)
* 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
2022-12-14 13:13:09 -08:00
Ana Hobden e2e841ab8e
Improve messaging on install failures and reverts (#118) 2022-12-13 09:11:46 -08:00
Ana Hobden 51a2d0bbae
Fix --no-default-features build (#114)
* Fix --no-default-features build

* Correct yaml for gha

* gha yaml sure is a thing

* Fix yaml yet again

* Fix nix develop invocation

* Fix --all-features pass
2022-12-12 12:21:10 -08:00
Ana Hobden dad8180985
Allow expected errors (#116)
* 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
2022-12-12 12:20:50 -08:00
Ana Hobden 29a345f99f
Curl on ci (#110)
* 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
2022-12-12 09:27:43 -08:00
Ana Hobden fede228894
Better uninstall version error (#113)
* More useful error message on version incompat

* Even more useful
2022-12-12 08:21:46 -08:00
Ana Hobden 1a90f50962
Don't output a <dscl_cmd> DS Error: -14136 (eDSRecordNotFound) (#107) 2022-12-12 08:18:39 -08:00
Ana Hobden 148625c85f
Sudo in harmonic (#109)
* 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
2022-12-09 13:00:37 -08:00
Ana Hobden 72792372ee
Tidy UX, make --logger param (#108)
* Tidy UX, make --logger param

* Include cargo change
2022-12-09 11:15:54 -08:00
Graham Christensen cda9fcfc03
nix -> Nix (#106)
* nix -> Nix

* Update create_user.rs

* Update create_users_and_groups.rs
2022-12-09 10:42:27 -08:00
Ana Hobden c2a4f3cbc9
Update nix (#103)
* Update nix

* Update ci
2022-12-09 08:17:45 -08:00
Ana Hobden cfded4bb8a
Uninstalling from /nix/harmonic works (#100)
* Move binary out of /nix if it is there during uninstall

* Add tracing

* Stick some random bytes on the end of the tmp exe
2022-12-09 07:36:44 -08:00
Ana Hobden ac5660b3e0
Fix the nix-directory.service possibly erroring and preventing nix from working (#101) 2022-12-09 07:36:35 -08:00
Ana Hobden fe83b35199
Fixup Mac curl $URL | sudo sh -s (#99)
* Fixup Mac curl sh

* We not longer require sudo for the script
2022-12-08 08:04:49 -08:00
Ana Hobden 0e4fcd3c3b
Gobble a specific stderr which was erroring when it shouldn't (#98) 2022-12-07 11:29:23 -08: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
Ana Hobden 5bad0ec1f5
Harmonic stores itself during install (#94)
* Harmonic stores itself during install

* Use provisioned harmonic to do uninstall in CI

* Steam deck is a special case

* Fix mac hanging
2022-12-06 07:13:13 -08:00
Ana Hobden ec0071d28f
Fix missing indicator for successful install (#93)
* Add successful install message

* No extra newline

* Use new wording
2022-12-05 20:21:11 +00:00
Ana Hobden 32dcfe73e7
Planner explain output fix (#92) 2022-12-05 12:10:28 -08:00
Ana Hobden 4ce8d94ac7
Create ActionError (#79)
* wip

* Fixes

* Fix a comment
2022-12-05 08:55:30 -08:00
Ana Hobden ae37842a0d
Add Steam Deck Support (#34)
* 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>
2022-12-02 07:31:15 -08:00
Ana Hobden 017bcaf1f6
Add skipped option to ActionState (#74)
* 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
2022-12-02 06:58:25 -08:00
Ana Hobden c39bf0a510
Flesh out docs and tidy up public API substantially (#67)
* 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
2022-11-28 22:57:35 +00:00
Ana Hobden f1d12149de
improve the output of some errors and plans (#66)
* improve the output of some errors and plans

* speeling
2022-11-25 11:50:21 -08:00
Ana Hobden 7cc71f1ccd
Make plans versioned (#62)
* Make plans versioned

* Delint

* speeeeeeeeling

* remove file that was dead
2022-11-25 11:46:38 -08:00
Ana Hobden ad44b85c97
Use process groups with tokio (also crate bump) (#63)
* Use process groups with tokio (also flake/crate bump)

* Use pgid0

* Maybe this checkout has a non-broken curl on mac

* Don't update flake at all
2022-11-25 08:02:00 -08:00
Ana Hobden 38ac180052
Tidy tracing (#57)
* 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
2022-11-23 09:18:38 -08:00
Ana Hobden 7255c7e5a1
Split up Linux Daemon disable and stop (#60)
* Split up Linux Daemon disable and stop

* Detect state and act on it

* Fixup pathes

* Handle linked
2022-11-21 12:54:32 -08:00
Ana Hobden b06ad289fc
More valid default settings (#59) 2022-11-21 10:50:12 -08:00
Ana Hobden d5757e68bd
Update flake/cargo deps (#56) 2022-11-16 21:11:14 +00:00
Ana Hobden 6f64bb0092
Detect if nix is installed (#51)
* Add Nix installed detection

* Call nix-env --version instead
2022-11-15 08:22:51 -08:00
Ana Hobden 2dcda0a801
Merge pull request #46 from DeterminateSystems/hoverbear/ds-431-ctrlc-should-be-handled-and-terminate-us
Handle signals and user stdin more gracefully
2022-11-14 13:37:52 -08:00
Ana Hobden 021dfaf92b Remove unused 2022-11-14 09:47:00 -08:00
Ana Hobden 15f44b34b3 Note about why this method is valid 2022-11-14 08:33:10 -08:00
Ana Hobden ffaee2669d Merge branch 'main' into hoverbear/ds-441-detect-nixos 2022-11-10 11:04:43 -08:00
Ana Hobden b61e16faed Merge branch 'main' into hoverbear/ds-431-ctrlc-should-be-handled-and-terminate-us 2022-11-10 11:04:29 -08:00
Ana Hobden 91f286a37f Planner error if on NixOS 2022-11-10 10:46:48 -08:00
Ana Hobden c94fad6c3c Use a github token in extra-conf 2022-11-10 10:23:00 -08:00
Ana Hobden 6123d778fe Merge branch 'main' into hoverbear/ds-431-ctrlc-should-be-handled-and-terminate-us 2022-11-10 09:43:38 -08:00
Ana Hobden 673464ede7
Merge pull request #31 from DeterminateSystems/nix-mac-encrypted-volume
Nix Mac encrypted volume support
2022-11-10 09:08:07 -08:00
Ana Hobden 835b8f82a0 Speeling 2022-11-10 09:04:41 -08:00
Ana Hobden 8c77b6eb38 Merge branch 'main' into hoverbear/ds-431-ctrlc-should-be-handled-and-terminate-us 2022-11-10 08:55:44 -08:00
Ana Hobden fb70f9d21b Merge branch 'main' into hoverbear/ds-436-tidy-up-plan-install-ux 2022-11-10 08:49:32 -08:00
Ana Hobden b81ec5f11f Include warning messages on noops for mac 2022-11-10 08:46:31 -08:00
Ana Hobden 1e518cab9f Merge branch 'main' into nix-mac-encrypted-volume 2022-11-10 08:40:55 -08:00
Ana Hobden a77cfc6d0c Include bare harmonic install command 2022-11-10 08:36:07 -08:00
Ana Hobden 5c1be32a08 Merge branch 'main' into hoverbear/ds-436-tidy-up-plan-install-ux 2022-11-10 08:32:20 -08:00
Ana Hobden 0c6102d96f Merge branch 'main' into hoverbear/ds-435-check-if-running-as-root 2022-11-10 08:25:35 -08:00
Katharina Fey 24a38ff454 cargo fmt 2022-11-10 16:08:47 +01:00
Katharina Fey e98827d5ae Restructure common actions into common and base
Base actions are those that don't depend on another action to execute.
They mostly map to "very simple" OS operations like creating a
directory or user.  Base actions MUST be multi-platform compatible.
Common actions may then use any set of base actions or other common
actions.  Base actions MUST NOT depend on other base actions.
2022-11-10 15:54:12 +01:00