feat(p6-batch): CLI/config plumbing for --write-batch/--only-write-batch/--read-batch

This commit is contained in:
2026-09-10 21:14:30 +02:00
parent 52f45692b9
commit 4930127312
4 changed files with 33 additions and 0 deletions
+8
View File
@@ -604,6 +604,14 @@ static const OptionEntry OPTION_TABLE[] = {
* any network I/O. Client-only: the server does not negotiate, it just
* enforces an exact match. */
{"--protocol", NULL, OPT_STRING, offsetof(Config, version)},
/* Phase 6 residual-batch (client-only): --write-batch=FILE runs the normal
* live transfer AND also emits the self-contained batch FILE;
* --only-write-batch=FILE emits FILE only (no destination, no server);
* --read-batch=FILE applies FILE to the destination (no source, no server).
* All three are LOCAL driver flags and never cross the wire. */
{"--write-batch", NULL, OPT_STRING, offsetof(Config, write_batch)},
{"--only-write-batch", NULL, OPT_STRING, offsetof(Config, only_write_batch)},
{"--read-batch", NULL, OPT_STRING, offsetof(Config, read_batch)},
{"--delete-before", NULL, OPT_FLAG, offsetof(Config, delete_before)},
{"--delete-during", "--del", OPT_FLAG, offsetof(Config, delete_during)},
{"--delete-delay", NULL, OPT_FLAG, offsetof(Config, delete_delay)},
+6
View File
@@ -44,6 +44,12 @@ void print_usage(void) {
printf(" --protocol=NUM Force the wire protocol version (must equal the current\n");
printf(" PROTOCOL_VERSION; FastSync cannot speak older/virtual\n");
printf(" wire formats)\n");
printf(" --write-batch=FILE Run the normal live transfer AND also emit a\n");
printf(" self-contained batch file of the whole source tree\n");
printf(" --only-write-batch=FILE\n");
printf(" Emit the batch file only (no destination, no server)\n");
printf(" --read-batch=FILE Apply the batch file to the destination (no source, no\n");
printf(" server); takes only the destination as an argument\n");
printf(" --delete Delete files on receiver not in source\n");
printf(" (default timing: delete only after the whole\n");
printf(" transfer has succeeded)\n");