Ignore:
Timestamp:
Apr 12, 2016, 4:58:03 PM (8 years ago)
Author:
joergs
Message:

make mirror script more flexible.

Use configuration files and helper scripts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dass-tools/usr/bin/mirror-obs.sh

    r1093 r1210  
    11#!/bin/bash
    22
    3 SOURCE_OPENSUSE="ftp5.gwdg.de::pub/opensuse/"
     3set -o errexit -o nounset
    44
    5 REPOS="repositories/home:/dassit
    6 "
     5CONFIG=${1:-/etc/mirror-obs.conf}
    76
    8 #
    9 # disabled repos:
    10 #
    11 #distribution/11.2/repo update/11.2 distribution/12.1/repo update/12.1
     7if ! [ -r "$CONFIG" ]; then
     8  echo "failed to read config file $CONFIG."
     9  exit 1
     10fi
     11source $CONFIG
    1212
    1313RSYNC_DELETE="--delete"
    14 
    15 #RSYNC_OPTS="-v -rlLptx --safe-links --stats \
    16 #        --exclude=*.src.rpm --exclude=*.nosrc.rpm --exclude=*.spm \
    17 #        --exclude=*.patch.rpm"
    18 
    19 RSYNC_OPTS="-v -rlLptx --safe-links --stats"
    20 
    21 DEST="/space/installtree/install/download.opensuse.org"
     14RSYNC_OPTS="-v -rlLptx --safe-links --stats $RSYNC_EXTRA_OPTS"
    2215
    2316rsync_if_exists()
    2417{
    25         src=$1
    26         dest=$2
     18    src=$1
     19    dest=$2
    2720
    28         rsync -q $src || return 1
    29         echo rsync-quelle $src gefunden.
    30         [ -d "$dest" ] || return 2
    31         rsync $RSYNC_OPTS $RSYNC_DELETE $src ./$dest
     21    rsync -q $src || return 1
     22    echo "found rsync source: $src"
     23    [ -d "$dest" ] || return 2
     24    rsync $RSYNC_OPTS $RSYNC_DELETE $src $dest
    3225}
    3326
    3427# ---------------- mirror openSUSE repositories ------------------------
    35 FAILED_REPOS=""
    36 SUCCESSFUL=""
     28FAILED=""
     29SUCCESS=""
     30
    3731
    3832cd $DEST
    3933
    40 for DIR in $REPOS
    41 do
     34for DIR in $REPOS; do
    4235  SOURCE_DIR=${SOURCE_OPENSUSE}/${DIR}/.
    4336  DEST_DIR=${DEST}/${DIR}/.
    4437  mkdir -p ${DEST_DIR}
    45   rsync_if_exists  "${SOURCE_OPENSUSE}$DIR/" "$DIR"
    46   case $? in
    47         1)      echo Distribution $DIR nicht gefunden
    48                 FAILED_REPOS="$FAILED_REPOS $DIR"
    49                 ;;
    50         2)      echo Zielverzeichnis $(pwd)/$DIR nicht vorhanden
    51                 FAILED_REPOS="$FAILED_REPOS $DIR"
    52                 ;;
    53         0)
    54                 SUCCESSFUL="$SUCCESSFUL $DIR"
    55                 ;;
    56         *)
    57                 echo Fehler $?
    58                 FAILED_REPOS="$FAILED_REPOS $DIR"
    59                 ;;
     38  rc=0
     39  rsync_if_exists  "${SOURCE_DIR}" "${DEST_DIR}" || rc=$?
     40  case $rc in
     41    1)  echo Distribution $DIR nicht gefunden
     42        FAILED="$FAILED $DIR"
     43        ;;
     44    2)  echo Zielverzeichnis ${DEST_DIR} nicht vorhanden
     45        FAILED="$FAILED $DIR"
     46        ;;
     47    0)
     48        SUCCESS="$SUCCESS $DIR"
     49        if [ "${POST_SCRIPT:-}" ]; then
     50            $POST_SCRIPT ${DEST_DIR}
     51        fi
     52        ;;
     53    *)
     54        echo Fehler $?
     55        FAILED="$FAILED $DIR"
     56        ;;
    6057  esac
     58  echo
     59  echo
    6160done
    6261
    63 # /usr/local/sbin/mirror-report-errors.sh mirror-osb "$SUCCESSFUL" "$FAILED_REPOS"
    64 #
    65 # # adapt repository sources
    66 # for i in `find $DEST/repositories -name "*.repo" -a ! -name "vermkv-*.repo"`; do
    67 #       basename=`basename $i`
    68 #       dirname=`dirname $i`
    69 #         sed "s|http://|http://install.vermkv/freigabe/|" $i > $dirname/vermkv-$basename
    70 # done
    71 
     62if [ "${REPORT_SCRIPT:-}" ]; then
     63    $REPORT_SCRIPT mirror-urls "$SUCCESS" "$FAILED"
     64fi
Note: See TracChangeset for help on using the changeset viewer.