#!/bin/sh

### Debug
## date | mailx -s "$0 is running" tillea@rki.de

# Andreas Tille, tille@debian.org, (c) 2001

# create partitial debian mirror using debmirror from Joey and rsync
# http://cvs.kitenet.net/joey-cvs/bin/debmirror
# DIST=testing
# see #281844
# DIST=sarge
DIST=testing

CONF=$(dirname $0)/mirror.conf
# echo $CONF
export http_proxy="$proxy"

if [ -f $CONF ] ; then
  . $CONF
fi

EXCLUDESTRING=""
INCLUDESTRING=""

for i in $EXCLUDE ; do
  EXCLUDESTRING="$EXCLUDESTRING|$i"
done

for i in $INCLUDE ; do
  INCLUDESTRING="$INCLUDESTRING|$i"
done

arch=i386
debug="--debug"
debug="$*"
## defopt="$debug --arch=$arch --getcontents --host=$host --nosource"
## Schalte mal getcontents ab, weil's sowieso nicht immer funktioniert
## und hole dann per Hand an andere Stelle zum Platz sparen
# defopt="$debug --arch=$arch --host=$host --nosource"
defopt="$debug  --arch=$arch --host=$host --nosource"
## Bei http worde manchmal nichts geholt

# echo "--getcontents wieder mit reinnehmen, sobald verfuegbar."
defopt="--method=http --proxy=$proxy $defopt --getcontents"
# defopt="--method=http --proxy=$proxy $defopt"

## --passive ... siehe #281844
# defopt="--passive $defopt"

$debmirrorprog $destdir/debian $defopt --dist=$DIST --exclude="non-US/|disks-$arch/|security/|/project/$EXCLUDESTRING"
## echo $debmirrorprog $destdir/debian $defopt --dist=$DIST --exclude="non-US/|disks-$arch/|security/|/project/$EXCLUDESTRING" > /usr/local/sbin/zw

## In non-US/contrib ist gar nichts mehr ...
## $debmirrorprog $destdir/non-US $defopt --dist=$DIST -r $nonusdir -s non-US/main,non-US/contrib,non-US/non-free  --exclude="project/$EXCLUDESTRING"
## Und auch sonst non-US Schwachsinn - es kann per conf-File ausgeschaltet werden
if [ _"$nonusdir" != _"" ] ; then
   $debmirrorprog $destdir/non-US $defopt --dist=$DIST -r $nonusdir -s non-US/main,non-US/non-free  --exclude="project/$EXCLUDESTRING"
   cd $destdir/non-US/dists/testing/non-US
   wget -N --quiet http://$host/debian-non-US/dists/testing/non-US/Contents-i386.gz
fi

TARGETDIR=$destdir/dists/testing/main/binary-i386
cd /tmp

### ddtp scheint zur Zeit absolut nicht zu funktionieren ... :-((
#rm -f Packages.gz
###  wget -N --quiet ftp://ftp.de.debian.org/debian-ddtp/dists/de/testing/main/binary-i386/Packages.gz
#wget -N --quiet http://ddtp.debian.org/aptable/dists/de/testing/main/binary-i386/Packages.gz
#if [ -f Packages.gz ] ; then
#   mv ${TARGETDIR}/Packages.gz ${TARGETDIR}/Packages.en.gz
#   mv Packages.gz ${TARGETDIR}/Packages.gz
#   rm -f ${TARGETDIR}/Packages ${TARGETDIR}/Packages.bz2
#fi
  

## MPlayer

EXCLUDESTRING=""
for i in $MPLAYEREXCLUDE ; do
  EXCLUDESTRING="$EXCLUDESTRING|$i"
done

#debug="--debug --verbose"
defopt="$debug --arch=$arch --host=$mplayerhost --nosource"
defopt="--method=http --proxy=$proxy $defopt --getcontents"
# Die leere Zeichenkette als dir (-r) scheint ganz wichtig, sonst erzeugt debmirror eine
# Adresse der Art http://www.debian-multimedia.org//debian/dists/sid/Release.gpg
# was durch die zwei '//' zu Problemen fuehrt
$debmirrorprog $destdir/mplayer --ignore-missing-release $defopt -r '' $mplayerdir --dist=$mplayerdist -s main,non-free --exclude="/project/$EXCLUDESTRING" 2> /dev/null > /dev/null



exit 0

### Old code

### Hole signierte Release-Files (auch wenn apt-check-sigs noch nicht eingesetzt wird)
### .... das sollte unntig geworden sein
cd $destdir/dists/testing
rm -f Release*
wget -N -q ftp://ftp.de.debian.org/pub/debian/dists/testing/Release
wget -N -q ftp://ftp.de.debian.org/pub/debian/dists/testing/Release.gpg

## non-US ist Schnulli ...
if [ _"$nonusdir" != _"" ] ; then
  cd $destdir/non-US/dists/testing/non-US
  rm -f Release* Contents-i386.gz
  wget -N -q ftp://ftp.de.debian.org/pub/debian-non-US/dists/testing/non-US/Release
  wget -N -q ftp://ftp.de.debian.org/pub/debian-non-US/dists/testing/non-US/Release.gpg
  # hier fehlt irgendwie noch Contents-i386.gz
  wget -N -q ftp://ftp.de.debian.org/pub/debian-non-US/dists/testing/non-US/Contents-i386.gz
fi

cd $destdir/mplayer/dists/testing
wget -N -q ftp://${mplayerhost}/${mplayerdir}/dists/${mplayerdist}/Release
wget -N -q ftp://${mplayerhost}/${mplayerdir}/dists/${mplayerdist}/Release.gpg


# Java von Skolelinux
if [ "$javahost" != "" -a "$javadist" != "" -a "$javasection" != "" -a "$javadir" != "" ] ; then
   defopt="--ignore-release-gpg $debug --arch=$arch --getcontents --host=$javahost --nosource"
   ## 2> /dev/null, weil hier offensichtlich keine Release-Files bereitgestellt werden
   # $debmirrorprog $destdir/blackdown $defopt -r $javadir --dist=$javadist -s $javasection 2> /dev/null
   # Auf SkoleLinux-Mirror funktioniert debmirror nicht - extrahiere einziges interessantes
   # File aus Packages und hole es manuell
   export destdir javahost javadist javasection javadir
   get-skolelinuxfiles

## Blackdown-Java

# defopt="--ignore-release-gpg --method=http $debug --arch=$arch --host=$blackdownhost --nosource"
# $debmirrorprog $destdir/blackdown $defopt -r $blackdowndir --dist=$DIST -s non-free 2> /dev/null > /dev/null

fi

# bevor mplayer in pools war ...

MirrorTmpDir () {
    tmpdir=/tmp/debmirror.tmp
    dest=$1
    case "$2" in
	stable|testing|unstable)
	    dist=$2
	    ;;
	*)
	    echo "Wrong distribution string = $2"
	    return -1
	    ;;
    esac
    mkdir -p $tmpdir/dists
    if [ -d "$dest"/dists/"$dist" ] ; then
	mv "$dest"/dists/"$dist" $tmpdir/dists
    else
	mkdir -p $tmpdir/dists/"$dist"
    fi
    $debmirrorprog $tmpdir $defopt -r $mplayerdir --dist="$dist" -s main --exclude="/project/$EXCLUDESTRING" 2> /dev/null
    mv "$tmpdir"/dists/"$dist" "$dest"/dists
    rm -rf $tmpdir
}

## MirrorTmpDir $destdir/mplayer $mplayerdist

#for i in $MPLAYERSTABLEEXCLUDE ; do
#  EXCLUDESTRING="$EXCLUDESTRING|$i"
#done
#MirrorTmpDir $destdir/mplayer stable
