Runs a configurable hook at the very end of every sync method, after all
cleanup has finished and the sync is confirmed successful. Unlike the
rsync/qfm post_hook, it is available for all sync methods and runs after
trace files, log cleanup, and mirror reporting.
Bare mirrors served over dumb HTTP need info/refs and objects/info/packs
kept current, so run git update-server-info after every successful bare
sync and clone. The post-update hook cannot be used since it only fires
on push, not on the fetch a mirror performs.
Add a hide_remote option (requires bare + source) that keeps the upstream
URL out of the served files: it removes the stored remote from config,
deletes FETCH_HEAD after each fetch, and fetches directly from source with
a +refs/*:refs/* mirror refspec on every run.
Add a SIGINT/SIGTERM trap that cleans up after an interrupted sync
instead of leaving stale state behind. On a terminal Ctrl-C the signal
reaches the running rsync/aws/git/etc. process directly (it is delivered
to the whole process group), so it stops on its own; the handler then
removes the Archive-Update-in-Progress markers, temporary stage logs and
the module lock file, and exits 130 without counting the interruption as
a sync failure (so it does not inflate the error count or send error
mail).
The rsync and quick-fedora-mirror paths register their in-progress
markers and temp logs for cleanup as they create them.
Bump version to 20260721.
Add a general a:link, a:visited dark mode rule so links anywhere in the
page (e.g. the description block) use the correct color instead of the
browser's default purple.
Add a:visited alongside a:link so visited links inherit the correct color
in both light and dark mode, instead of falling back to the browser's
default dark purple.
Introduces logo_dark and repo_icon_dark config options that serve alternate
images to dark-OS browsers via HTML <picture> elements, and adds a CSS
prefers-color-scheme dark block to the default header template.
- mirror-sync.sh: fix upstream_check/time_file_check to handle missing
timestamp file and empty Last-Modified header; fix rebuild_dusum_totals
variable shadowing; propagate return codes from install helpers; refactor
git_sync out of subshell; scope LOGFILE_STAGE2 to stage-2 block; clean up
mirror_update_file and QFM in-progress files on failure; fix total_time
initialization and wget_sync exit propagation
- mirror-file-generator.sh: add icons_local_repo/icons_repo_url/icons_repo_refresh
for offline icon serving; move PIDFILE to /tmp; enhance image_copy to
refresh stale cached files; fix temp index file cleanup on empty output;
safer ${var:?} → [[ -n $var ]] guards throughout
- README.md: fix typos, heading levels, variable names, and document new
icon repo config options
- Bump VERSION to 20260602 in both scripts
Move PIDFILE to /var/run, fix curl to fail fast on HTTP errors and clean partial
files before fallback, break after read_config in module loop, read per-tier
timestamp/dusum sidecars for promoted CUSTOM_MODULES, and fall back to
.last-synced mtime when no other timestamp source is configured.