From 0656dac7b61034376a218b5ab2e74c3c4d57e041 Mon Sep 17 00:00:00 2001 From: Darren 'Tadgy' Austin Date: Fri, 22 May 2026 13:33:36 +0100 Subject: [PATCH] Mirror: allow running the whole sync with '*' as an argument. --- mirror | 64 ++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/mirror b/mirror index a2cafd7..3a28814 100755 --- a/mirror +++ b/mirror @@ -7,7 +7,7 @@ # shellcheck disable=SC2034 # Script config. -DEBUG="echo" # Set to 'echo' for debugging, or ':' for none +DEBUG=":" # Set to 'echo' for debugging, or ':' for none SLEEP="5m" # Sleep time between syncs when there was an error in the sync ERRORS_MAX="3" # After this many errors in the sync tries, give up MAX_PROC="3600" # If a run takes longer than this time (in seconds), a new run is started @@ -100,7 +100,7 @@ SALIX_FILTER=('--exclude=/sbo') SBO_TYPE="rsync" SBO_MIRROR="slackbuilds.org" SBO_MODULE="slackbuilds/" -SBO_DESTDIR="slackbuilds.org/" +SBO_DESTDIR="sbo/" SBO_OPTIONS=() SBO_FILTER=() @@ -195,19 +195,25 @@ while [[ -n "$1" ]]; do exit 0 ;; *) - ITEM="${1^^}" - [[ ! -v ${ITEM}_DESTDIR ]] && { - echo "ERROR: '$1' is not a valid mirror ID" >&2 - exit 1 - } - TYPE="${ITEM}_TYPE" - if [[ "${!TYPE}" == "rsync" ]]; then - RSYNC_LIST+=("${ITEM}") - elif [[ "${!TYPE}" == "lftp" ]]; then - LFTP_LIST+=("${!ITEM}") + if [[ "$1" == "*" ]]; then + SYNC_ALL=1 + shift + break else - echo "ERROR: invalid type of mirroring for '${ITEM}'" >&2 - exit 1 + ITEM="${1^^}" + [[ ! -v ${ITEM}_DESTDIR ]] && { + echo "ERROR: '$1' is not a valid mirror ID" >&2 + exit 1 + } + TYPE="${ITEM}_TYPE" + if [[ "${!TYPE}" == "rsync" ]]; then + RSYNC_LIST+=("${ITEM}") + elif [[ "${!TYPE}" == "lftp" ]]; then + LFTP_LIST+=("${!ITEM}") + else + echo "ERROR: invalid type of mirroring for '${ITEM}'" >&2 + exit 1 + fi fi shift ;; @@ -217,26 +223,26 @@ done # What should be sync'd, if not provided on the command line. (( ${#RSYNC_LIST[@]} == 0 )) && { # Main tree. - [[ $(printf "%(%H)T") =~ .* ]] && RSYNC_LIST+=('SLACKTREE') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ .* ]] && RSYNC_LIST+=('SLACKTREE') # Other remotes. - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('ALIEN') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('CURRENTISO') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('KTOWN') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('LIVESLAK') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('PORTEUS') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('R0NI') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('RWORKMAN') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('SALIX') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('SBO') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('ZENWALK') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('ALIEN') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('CURRENTISO') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('KTOWN') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('LIVESLAK') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('PORTEUS') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('R0NI') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('RWORKMAN') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('SALIX') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('SBO') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('ZENWALK') # Locals. - [[ $(printf "%(%H)T") =~ .* ]] && RSYNC_LIST+=('SLACKARCHIVE') - [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('MULTILIBARCHIVE') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ .* ]] && RSYNC_LIST+=('SLACKARCHIVE') + (( ${SYNC_ALL:-0} == 1 )) || [[ $(printf "%(%H)T") =~ (02|08|14|20) ]] && RSYNC_LIST+=('MULTILIBARCHIVE') } (( ${#LFTP_LIST[@]} == 0 )) && { - # Nothing to sync here currently + # Nothing to sync here currently. : } @@ -316,7 +322,7 @@ for RUN in $(seq -s' ' 1 "$MAX_RUNS"); do ;; esac done - echo "INFO: Finished processing of $VAR at $(printf "%(%c)T")." >&2 + echo "INFO: Finished processing of '$VAR' at $(printf "%(%c)T")." >&2 done echo "INFO: End of rsync run $RUN at $(printf "%(%c)T")" >&2