Repository navigation
v0.3.0 — arc-sync self-update
Headline: arc-sync self-update — hosts can now pull the latest binary from the relay with a single subcommand. Atomic, idempotent, and a clean drop-in for nightly cron.
What's new
arc-sync self-update— replaces the running binary with the latest from the configured relay's/download/endpoint- Same-directory atomic rename (no torn writes)
- Hash-based no-op: re-running with no upstream change is exit-0 silent
- 1 MiB min-size sanity check (catches captive portals, partial transfers)
- Preserves the existing binary's mode bits (root-owned installs stay root-owned)
- Flags:
--dry-run(fetch + hash, don't replace),--json(single-line cron-log-friendly output) - macOS prints a follow-up
codesign --force --sign -reminder after replacing (avoids amfid SIGKILL on adhoc-signed Go binaries)
Use it
arc-sync self-update # human output
arc-sync self-update --dry-run # preview only
arc-sync self-update --json # for cron / log scraping
Cron-friendly:
30 3 * * * root arc-sync self-update --json >> /var/log/arc-sync.log 2>&1This retires the standalone /etc/cron.d/arc-sync-update shell script we'd deployed on hosts as a stopgap.
Compatibility
- arc-sync v0.3.0 is binary-compatible with arc-relay v0.2.0+ (no relay-side changes required for self-update).
- The relay's
/download/<binary>endpoint already serves these v0.3.0 assets ifARC_RELAY_DOWNLOAD_REPO=ATECHPCS/arc-relay(default since v0.2.0).