Commit graph

77 commits

Author SHA1 Message Date
Zhaofeng Li
0927fe9dc1 cli: Add hidden command to generate shell autocompletion 2021-03-23 14:14:04 -07:00
Zhaofeng Li
53b55a102e cli: Set bin_name to be lower case 2021-03-23 14:14:04 -07:00
Zhaofeng Li
ba2574755a Separate global CLI setup into module 2021-03-23 14:14:04 -07:00
Zhaofeng Li
8abcd5d53b "Successfully built" -> "Build successful" for consistency 2021-03-18 15:13:34 -07:00
Zhaofeng Li
b44dd1f877 apply_local: Don't bother evaluating other hosts 2021-03-18 15:05:05 -07:00
Zhaofeng Li
e9487ced9e host: Use the key uploader script for both SSH and local 2021-03-17 22:39:05 -07:00
Zhaofeng Li
29cfd45141 Miscellaneous doc fixes 2021-03-17 19:07:26 -07:00
Zhaofeng Li
610a725ba2 Add --keep-result to create GC roots for profiles
This resembles the behavior of morph.

Reference: #18
2021-03-17 14:59:57 -07:00
Zhaofeng Li
81375e71b2 deployment: Display the resulting paths if the goal is to build only
Reference: #18
2021-03-17 14:59:43 -07:00
Zhaofeng Li
0047a0dc91 niv: Follow unstable Nixpkgs 2021-03-17 14:59:05 -07:00
Zhaofeng Li
180d2f2435
Merge pull request #17 from jasonrm/nix-copy-ssh-options
Makes SSH options available to nix-copy-closure
2021-03-14 23:06:04 -07:00
Jason R. McNeil
4098bf73bc Makes SSH options available to nix-copy-closure 2021-03-14 22:20:47 -07:00
Zhaofeng Li
fb5ff6f9c9 Allow specifying alternative commands for privilege escalation
Fixes #16.
2021-03-10 08:42:51 -08:00
Zhaofeng Li
082a033443 eval.nix: Exclude internal Nixpkgs config options from node override warning 2021-02-17 23:06:22 -08:00
Zhaofeng Li
3b005b0949 src/progress.rs: Oops, forgot to add 2021-02-17 22:56:34 -08:00
Zhaofeng Li
e32e130621 Always print the entire log for failures in eval and build
This makes it easier to debug configuration issues without -v.

Fixes #14.
2021-02-17 22:48:26 -08:00
Zhaofeng Li
d16a13654c Merge nixpkgs.config and nixpkgs.overlays
This replaces #12, and allows for Nixpkgs overlays and config to be overridden
in machine configs. With #12, overlays set in machine configurations
(`nixpkgs.overlays`) get silently ignored.
2021-02-17 22:46:01 -08:00
Zhaofeng Li
9eae937b42 apply: Disable configuration of build process limit 2021-02-17 08:09:15 -08:00
Zhaofeng Li
ee52032e4c
Merge pull request #12 from justinas/propagate-nixpkgs
Propagate same 'pkgs' to all modules
2021-02-16 13:01:42 -08:00
Justinas Stankevicius
10f98d715f Propagate same 'pkgs' to all modules 2021-02-16 20:53:43 +02:00
Zhaofeng Li
6a9282e121 exec: Remove outdated doc 2021-02-12 16:21:38 -08:00
Zhaofeng Li
30dc352eb9 eval.nix: Add type checking to meta/network
Primarily to make the evaluation error out if the configuration
tries to use non-existent options (e.g., pinning Nixpkgs with
morph-specific options).
2021-02-12 14:52:09 -08:00
Zhaofeng Li
d0bba90d04 ssh: Fix shell escaping
The previous `sh -c` invocation was incorrect and just happened
to work on hosts with a Bourne-compatible shell set as the login
shell. Commands in the deploy script were being executed in the
login shell.
2021-02-12 13:55:44 -08:00
Zhaofeng Li
95ddbcbfd6 ssh/deploy-key: Skip chown if the user/group doesn't exist
This matches the behavior of NixOps.

Potential solution to #10.
2021-02-12 13:54:17 -08:00
Zhaofeng Li
dbd66d7c7c Add initial set of tests 2021-02-11 13:27:21 -08:00
Zhaofeng Li
114c344dbb
Merge pull request #9 from justinas/handle-keycommand-errors
Handle and report errors of key source, do not write out key if keyCommand failed
2021-02-11 13:13:08 -08:00
Justinas Stankevicius
4c7f8eb838 keyCommand: on error, do not upload key, report 2021-02-11 21:16:56 +02:00
Zhaofeng Li
e49e9367c0 key: Serialize KeySource through an intermediate struct
Well, still better than `if/else`-ing all the way. Also we
definitely need unit tests.

See #8.
2021-02-11 00:51:11 -08:00
Zhaofeng Li
2886662e18 nix: Key names can contain one path component only
Well, I changed my mind and this should be cleaner.
2021-02-10 18:17:55 -08:00
Zhaofeng Li
28b635a6e8 README.md: Add example usage of keyCommand 2021-02-10 18:12:28 -08:00
Zhaofeng Li
52622ecd27 Add 'deployment.keys.<key>.keyCommand' support
Fixes #3.
2021-02-10 18:08:47 -08:00
Zhaofeng Li
ce9f639a53 key: Make the key source better typed 2021-02-10 17:34:52 -08:00
Zhaofeng Li
62753ea138 progress: Let's just call them "tasks" instead of "processes"... 2021-02-10 17:20:49 -08:00
Zhaofeng Li
9d59a6a288
Merge pull request #5 from justinas/keys-keyfile
Add 'deployment.keys.<key>.keyFile' option
2021-02-10 17:20:28 -08:00
Justinas Stankevicius
d90fc56bc3 Implement key upload from local file 2021-02-10 20:37:54 +02:00
Justinas Stankevicius
f521f19629 Add deployment.keys.<key>.keyFile option 2021-02-10 20:37:54 +02:00
Zhaofeng Li
afabd8c6f9 Minor tokio cleanup 2021-02-10 10:29:17 -08:00
Zhaofeng Li
9f4d5a2221 Target stable toolchain 2021-02-10 00:41:02 -08:00
Zhaofeng Li
9a588815c8 exec.rs: Wording 2021-02-10 00:22:17 -08:00
Zhaofeng Li
13903800a8 README.md: More docs and sample output 2021-02-10 00:19:39 -08:00
Zhaofeng Li
d9d9bf48f6 apply.rs: Remove unused build limit flag 2021-02-09 22:33:45 -08:00
Zhaofeng Li
78a6825be6 Add exec command 2021-02-09 22:07:10 -08:00
Zhaofeng Li
1c9e7cdb83 Allow customization of SSH configurations 2021-02-09 21:02:00 -08:00
Zhaofeng Li
a2fa8f1da7 Clean up logging / progress display 2021-02-09 19:28:45 -08:00
Zhaofeng Li
8934726664 More fixes to key deployment and logging 2021-02-09 14:57:11 -08:00
Zhaofeng Li
a703a8b031 README.md: Fix silly typos :/ 2021-02-09 14:30:50 -08:00
Zhaofeng Li
84aa165aef Refactoring and deployment.keys implementation
More refactoring of the deployment process, as well as an initial
implementation of `deployment.keys`.

Fixes #2.
2021-02-08 19:00:29 -08:00
Zhaofeng Li
21c2bef3ad Small fixes to eval logging 2021-02-05 02:20:57 -08:00
Zhaofeng Li
406e5a6443 apply-local: Allow overriding the node name 2021-02-05 02:20:08 -08:00
Zhaofeng Li
6e909477ae nix/deployment: Well, that's an embarrassing typo... 2021-01-29 21:24:05 -08:00