aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-04-20[Chore] Handle 'temp_path' as an actual 'Path' instead of 'String'Roman Melnikov1-1/+2
Problem: 'temp_path' and 'lock_path' are handled as 'String'. This can be a problem when the 'temp_path' directory is a symlink on the target system, e.g. this is the case with the default '/tmp' and macOS, where this directory is actually a symlink to '/private/tmp'. Solution: Handle 'temp_path' and 'lock_path' as actual Paths. Also, canonicalize 'temp_path' to avoid canary file path mismatches when checking filesystem events. As a side effect, also update the 'notify' dependency to the latest stable version.
2022-12-29Build every profile first, then push (#158)2xsaiko1-12/+21
Try to build everything first before pushing to remotes. Since the build is more likely to fail than the upload, if there is an error the deployment will fail sooner and before uploading any potentially unusable configuration.
2022-11-18Add option to build on the remote hostPhilipp Herzog1-6/+7
2022-11-11Introduce non-zero exit code for rollbacksPhilipp Herzog1-1/+3
Closes #179
2022-10-09Add new activation strategy `boot` as equivalent to `nixos-rebuild boot`Maximilian Bosch1-1/+10
This can be useful when e.g. deploying a kernel update to a target host. You usually plan a reboot (or kexec) after that to activate the new kernel. However you don't want to wait for services to be restarted first since these will be "restarted" anyways on the reboot. In cases like GitLab or the Atlassian stack this actually makes a difference. This patch changes the following things: * If `--boot` is provided, `nix-env -p profile-to-activate --set` is called for each deployed profile to make sure that it is activated automatically after a reboot. * However, the actual activation (e.g. `switch-to-configuration switch`) is skipped. Instead: * For NixOS, `switch-to-configuration boot` is called to set the new profile as default in the bootloader. * For everything else, nothing else is done. The profile is already the new default (and thus picked up on the next boot).
2022-01-28Add custom sudo command supportAndrew Fontaine1-0/+4
This is useful for nodes that utilize `doas` instead of `sudo`.
2021-08-12General code cleanupnotgne21-26/+21
2021-07-29fix ambiguous crate refTimothy DeHerrera1-1/+1
2021-07-29optionally take args as inputTimothy DeHerrera1-3/+6
2021-07-29make cli opts publicTimothy DeHerrera1-1/+1
2021-07-14export cli run in libTimothy DeHerrera1-19/+8
2021-06-22Cargo fmtAlexander Bantyev1-6/+6
2021-06-22Add multi node supportYannik Sander1-97/+181
Run multiple deployments in sequence Resolve targets later Extend context by deployed flake Apply clippy suggestions Add revoke command builder Track succeeded deploys Add revoke function Register revoke error as deploy error Prepare revoke command in activate Extend logger to handle revoke Implement revoke command client side Run revoke on previously suceeded Control whether to override by flag Adhere profile configuration auto_rollback setting Cargo fmt Correctly provide profile path to activation script when revoking Document multi flake mode in README Resolve a typo in README.md Co-authored-by: notgne2 <gen2@gen2.space> Use existing teminology rename revoke_suceeded -> rollback_suceeded Use more open CLI argument name `targets` instead of `flakes` Document name changes in README Add sudo command support for revokes Call run_deploy with `dry_active` flag Test revoke commands contains sudo Set default temp_path in activate binary Require temp_path for wait and activate subcommands Add copyright comment Address review change requests Fix typo in README Co-authored-by: Alexander Bantyev <balsoft@balsoft.ru>
2021-04-07Add dry activate argument.Oleg Pykhalov1-1/+7
2021-02-19Remove redundant `format!()`notgne21-1/+1
2021-02-09Clean up adding Command argumentsnotgne21-8/+6
2021-02-07fixup! Evaluate deploy output lazilyAlexander Bantyev1-50/+42
2021-02-06Evaluate deploy output lazilyAlexander Bantyev1-22/+70
Currently, we evaluate the `#deploy` output strictly. This means - Longer eval times - Extraneous evaluation errors with `--skip-checks` - `-- --impure` even when the path we're currently deploying is pure - etc. With this change, evaluation happens lazily -- we only evaluate the nodes and profiles we really need. It is only implemented for flaky Nix, and it is on by default. To get the old behavior, one can specify `--strict-eval`. I have tested that this indeed dramatically increases evaluation speed in all of our repos, and removes the need to deploy Agora with `--impure`. Hooray!
2021-01-26changed: remove 2015-style extern crateBernardo Meurer1-8/+3
2021-01-08Don't import PushProfileDatanotgne21-2/+1
2021-01-08Remove `Error` postfixes from error variants variantsnotgne21-18/+16
2021-01-08Use type definition for ToDeploynotgne21-53/+52
2021-01-08Struct-ify arguments to push_profilenotgne21-5/+6
2021-01-08Fix trivial lint issuesnotgne21-1/+1
2021-01-08Restructure projectnotgne21-36/+36
2020-12-30Modify activation logic to keep SSH connection alive for magic-rollback and ↵notgne21-1/+5
avoid forking or disconnecting std{out,err}
2020-12-27Make printed deployment information be info level instead of warnnotgne21-1/+1
2020-12-27Replace logger, add more logging options including filesnotgne21-8/+17
2020-11-29Use crude Nix parsing for parsing the flake pathnotgne21-4/+6
2020-11-27Remove old `--no-link` flags to the Nix buildnotgne21-1/+1
2020-11-24Fix ProfileNotFound error messagenotgne21-1/+1
2020-11-22Print deployment if interactive mode is disablednotgne21-0/+4
2020-11-22Remove ref/cows from DeployDefs, add interactive flag (resolves #4)notgne21-34/+49
2020-11-22Refactor running to deprecate deploy_all_profiles/push_all_profilesnotgne21-237/+122
2020-11-22Partially add deployment confirmation utilities (for #4)notgne21-0/+90
2020-11-21Build nothing if checks attribute is missing in non-flakes mode (fixes #7)notgne21-1/+1
2020-11-14Pass extra build args to build commandnotgne21-0/+7
2020-11-07Unmute some more outputs, document the remaining mutesnotgne21-0/+1
2020-11-02Mildly improve loggingnotgne21-1/+1
2020-10-30Tweak error messages a littlenotgne21-3/+3
2020-10-29Make all the errors work correctly (I am so so sorry)notgne21-43/+151
2020-10-26Add more debug logsnotgne21-1/+4
2020-10-26Automatically run checks when deployingnotgne21-1/+43
2020-10-23Add an option to keep build resultsnotgne21-3/+24
2020-10-23Warn when flakes are not available, forward stderr of Nix evaluationnotgne21-5/+9
2020-10-13Clean up some CLI arguments, make magic rollback optionalnotgne21-36/+37
2020-10-08Update documentationnotgne21-14/+0
2020-10-06Add skip-push flagnotgne21-25/+36
2020-10-05Improve schema a bit, fix flake locks for examplesnotgne21-9/+19
2020-10-05Add interface with json schema, fix flake-less issues, put setActivate and ↵notgne21-3/+6
jsonSchema check in flake lib