From 8d5d61c13c2c3692b5539fae3f807a7aa37325ca Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Thu, 21 May 2020 11:58:11 +0000 Subject: [PATCH] Utility script to populate a dev instance with drafts, rfcs, slides, etc. - Legacy-Id: 17862 --- docker/rsync-extras | 127 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100755 docker/rsync-extras diff --git a/docker/rsync-extras b/docker/rsync-extras new file mode 100755 index 000000000..9353469da --- /dev/null +++ b/docker/rsync-extras @@ -0,0 +1,127 @@ +#!/bin/bash + +version=0.10 +program=${0##*/} +progdir=${0%/*} +if [ "$progdir" = "$program" ]; then progdir="."; fi +if [ "$progdir" = "." ]; then progdir="$PWD"; fi +parent=$(dirname $progdir) +if [ "$parent" = "." ]; then parent="$PWD"; fi + +export LANG=C + +# ---------------------------------------------------------------------- +function usage() { + cat < + +COPYRIGHT + + Copyright (c) 2016 IETF Trust and the persons identified as authors of + the code. All rights reserved. License 'Simplified BSD', as specified + in http://opensource.org/licenses/BSD-3-Clause. + +EOF + +} + +# ---------------------------------------------------------------------- +function die() { + echo -e "\n$program: error: $*" >&2 + exit 1 +} + +function note() { + if [ -n "$VERBOSE" ]; then echo -e "$*"; fi +} + +# ---------------------------------------------------------------------- +function version() { + echo -e "$program $version" +} + +# ---------------------------------------------------------------------- +trap 'echo "$program($LINENO): Command failed with error code $? ([$$] $0 $*)"; exit 1' ERR + + +# ---------------------------------------------------------------------- +# Option parsing + +# Options +shortopts=hvV +longopts=help,verbose,version + +# Default values + +if [ "$(uname)" = "Linux" ]; then + args=$(getopt -o "$shortopts" --long "$longopts" -n '$program' -- $SV "$@") + if [ $? != 0 ] ; then die "Terminating..." >&2 ; exit 1 ; fi + eval set -- "$args" + sed="sed -r" +else + # Darwin, BSDs + args=$(getopt -o$shortopts $SV $*) + if [ $? != 0 ] ; then die "Terminating..." >&2 ; exit 1 ; fi + set -- $args + sed="sed -E" +fi + +while true ; do + case "$1" in + -h| --help) usage; exit;; # Show this help, then exit + -v| --verbose) VERBOSE=1;; # Be more talkative + -V| --version) version; exit;; # Show program version, then exit + --) shift; break;; + *) die "Internal error, inconsistent option specification: '$1'";; + esac + shift +done + +# ---------------------------------------------------------------------- +# The program itself + +[ $# -lt 1 ] && die "Missing argument: rsync destination" + +DEST_ROOT="${1%/}" +for dir in charter conflict-reviews internet-drafts review rfc slides status-changes yang; do + dest="$DEST_ROOT/ietf-ftp/$dir" + echo "Fetching $dest ..." + rsync -auz ${VERBOSE:+--info=progress2} rsync.ietf.org::everything-ftp/$dir/ $dest/ +done + +for dir in floor photo; do + dest="$DEST_ROOT/media/$dir" + echo "Fetching $dest ..." + rsync -auz ${VERBOSE:+--info=progress2} rsync.ietf.org::dev.media/$dir/ $dest/ +done + + + dest="$DEST_ROOT/archive/id" + echo "Fetching $dest ..." + rsync -auz ${VERBOSE:+--info=progress2} rsync.ietf.org::id-archive/ $dest/ + +