diff options
| author | tv <tv@krebsco.de> | 2026-11-13 15:46:17 +0000 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-13 16:51:37 +0100 |
| commit | c7ec9892418f7f02799bc0dc74249c93f85e7a1b (patch) | |
| tree | 285d657c706104fd8ba120b154bbd2c8877a9955 /pkgs/populate/src/cli.rs | |
| parent | 19e8b4ec12a85a030b1fa411acee6b3d7b4b93a7 (diff) | |
populate: deliver sources other than flakes with the Rust program
The program delivers derivation, file, git, pass, passage, pipe, and
symlink sources, makes backups, and prunes, as the shell implementation
does, with the same messages. Commands on the target are fixed shell
snippets in src/sh.rs, which get values as positional parameters, run
directly for local targets and over ssh, sharing one master connection,
for remote ones. rsync's transfers and its check for .rsync-filter files
it can't read are in src/rsync.rs. Given flake or flake-input sources, or
sources drawing inputs from others, the program fails before changing
anything, saying that these aren't implemented yet.
SIGHUP, SIGINT, and SIGTERM make populate stop once the command it waits
for ends, stop the ssh master, remove its temporary directory, and exit
with 128 plus the signal's number.
The spec's target gets local, which rust.nix sets during evaluation, like
the other functions of krops decide, and which the program decides when
it runs if it's null. The spec comes on file descriptor 3, so the
commands populate runs keep standard input, and the tools populate runs
come first in PATH.
Diffstat (limited to 'pkgs/populate/src/cli.rs')
0 files changed, 0 insertions, 0 deletions
