collect: add diff to credentials file; --diff overrides it

Change --diff from store_true to default=None so CLI presence is
distinguishable from the JSON default. If not given on CLI, reads
creds_data.get("diff", False). Updated install.sh template and README.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 15:09:54 +02:00
co-authored by Claude Sonnet 4.6
parent c33236020d
commit 5944b0a7a4
3 changed files with 8 additions and 3 deletions
+2 -1
View File
@@ -82,6 +82,7 @@ All connection and collection settings live in a single JSON file:
| `host` | `"0.0.0.0"` | Push server bind address | | `host` | `"0.0.0.0"` | Push server bind address |
| `port` | `9999` | Push server TCP port | | `port` | `9999` | Push server TCP port |
| `log_dir` | `"./logs"` | Directory for rotating JSON log files | | `log_dir` | `"./logs"` | Directory for rotating JSON log files |
| `diff` | `false` | Enable diff mode for push server transmission |
### CLI reference ### CLI reference
@@ -97,7 +98,7 @@ CLI flags override the corresponding credentials file value when given.
| `--port PORT` | `port` | Push server TCP port | | `--port PORT` | `port` | Push server TCP port |
| `--log-dir DIR` | `log_dir` | Directory for rotating log files | | `--log-dir DIR` | `log_dir` | Directory for rotating log files |
| `--max-records N` | — | Keep only the last N records per file | | `--max-records N` | — | Keep only the last N records per file |
| `--diff` | | Send diffs instead of full snapshots (must match client setting) | | `--diff` | `diff` | Send diffs instead of full snapshots (must match client setting) |
| `--dry` | — | Skip WeConnect; run push server only (for testing) | | `--dry` | — | Skip WeConnect; run push server only (for testing) |
| `-v` | — | Verbose / debug logging | | `-v` | — | Verbose / debug logging |
| `--list-domains` | — | Print available domains and exit | | `--list-domains` | — | Print available domains and exit |
+4 -1
View File
@@ -220,7 +220,8 @@ def main() -> None:
p.add_argument( p.add_argument(
"--diff", "--diff",
action="store_true", action="store_true",
help="Send diffs instead of full snapshots over the push server (default: off)", default=None,
help="Send diffs instead of full snapshots over the push server (overrides credentials file, default: off)",
) )
p.add_argument( p.add_argument(
"--dry", "--dry",
@@ -273,6 +274,8 @@ def main() -> None:
args.port = int(creds_data.get("port", 9999)) args.port = int(creds_data.get("port", 9999))
if args.log_dir is None: if args.log_dir is None:
args.log_dir = creds_data.get("log_dir", "./logs") args.log_dir = creds_data.get("log_dir", "./logs")
if args.diff is None:
args.diff = bool(creds_data.get("diff", False))
if not args.dry and (not args.username or not args.password): if not args.dry and (not args.username or not args.password):
p.error( p.error(
+2 -1
View File
@@ -60,7 +60,8 @@ if [[ ! -f "$CREDS_FILE" ]]; then
"interval_s": 300, "interval_s": 300,
"host": "0.0.0.0", "host": "0.0.0.0",
"port": 9999, "port": 9999,
"log_dir": "./logs" "log_dir": "./logs",
"diff": false
} }
EOF EOF
chmod 600 "$CREDS_FILE" chmod 600 "$CREDS_FILE"