#!/bin/sh
export LANG=C

. $HOME/.ssh-env

QUINDIFF_WORK=/home/ishikawa/common/web/www/Linux/Debian/quinn-diff/packages
QUINDIFF_BASE=/home/ishikawa/common/web/www/Linux/Debian/quinn-diff
MIRROR_BASE=/common/Debian/debian/dists
NON_US_BASE=/common/Debian/debian-non-US/dists

ARCHS="sh3 sh4 sh m68k hppa ia64 mips mipsel arm sparc i386 alpha powerpc hurd-i386"

cd $QUINDIFF_WORK

###
### Update Packages
###

for arch in ${ARCHS}
do

    case "$arch" in
	"i386" | "m68k" | "sparc" | "alpha" | "arm" | "powerpc")
	DISTRO="stable testing unstable"
	;;
	"hppa" | "ia64")
	DISTRO="testing unstable"
	;;
	*)
	DISTRO="unstable"
	;;
    esac

  for dist in ${DISTRO}
    do
    savelog -c 3 Packages_${dist}_${arch}_all
    savelog -c 3 Packages_${dist}_${arch}_non-US_all

    for sec in non-free contrib main
      do
    # debian
      savelog -c 2 Packages_${dist}_${arch}_${sec}
      cat ${MIRROR_BASE}/${dist}/${sec}/binary-${arch}/Packages | tee Packages_${dist}_${arch}_${sec} >> Packages_${dist}_${arch}_all
      
    # debian-non-US  
      savelog -c 2 Packages_${dist}_${arch}_non-US_${sec}
      cat ${NON_US_BASE}/${dist}/non-US/${sec}/binary-${arch}/Packages | tee Packages_${dist}_${arch}_non-US_${sec} >> Packages_${dist}_${arch}_non-US_all
    done
  done
done

###
### Update Sources
###

DISTRO="stable testing unstable"

savelog -c 3 Sources_${dist}_all
rm -f Sources_${dist}_all
savelog -c 3 Sources_${dist}_non-US_all
rm -f Sources_${dist}_non-US_all

for dist in ${DISTRO}
do

  for sec in non-free contrib main
    do

    ### debian source
    savelog -c 3 Sources_${dist}_${sec}
    rm -f Sources_${dist}_${sec}
    zcat ${MIRROR_BASE}/${dist}/${sec}/source/Sources.gz | tee Sources_${dist}_${sec} >> Sources_${dist}_all
  
    ### debian-non-US source
  
    savelog -c 3 Sources_${dist}_non-US_${sec}
    rm -f Sources_${dist}_non-US_${sec}
    zcat ${NON_US_BASE}/${dist}/non-US/${sec}/source/Sources.gz | tee Sources_${dist}_non-US_${sec} >> Sources_${dist}_non-US_all
  done
done

###
### Update quinn-diff output
###

savelog -c 3 $QUINDIFF_BASE/arch_warn

for arch in ${ARCHS}
do
    case "$arch" in
	"i386" | "m68k" | "sparc" | "alpha" | "arm" | "powerpc")
	DISTRO="stable testing unstable"
	;;
	"hppa" | "ia64")
	DISTRO="testing unstable"
	;;
	*)
	DISTRO="unstable"
	;;
    esac

  for dist in ${DISTRO}
    do
    for sec in non-free contrib main
      do
      savelog -c 3 ${QUINDIFF_BASE}/${arch}/${sec}/${dist}
      quinn-diff --arch-specific-packages=$QUINDIFF_BASE/Packages-arch-specific --architecture=$arch --packages=Packages_${dist}_${arch}_${sec} --sources=Sources_${dist}_${sec} > ${QUINDIFF_BASE}/${arch}/${sec}/${dist} 2>> $QUINDIFF_BASE/arch_warn

      savelog -c 3 ${QUINDIFF_BASE}/${arch}/non-US/${sec}/${dist}
      quinn-diff --arch-specific-packages=$QUINDIFF_BASE/Packages-arch-specific --architecture=$arch --packages=Packages_${dist}_${arch}_non-US_${sec} --sources=Sources_${dist}_non-US_${sec}  > ${QUINDIFF_BASE}/${arch}/non-US/${sec}/${dist} 2>> $QUINDIFF_BASE/arch_warn

    done

    savelog -c 3 ${QUINDIFF_BASE}/${arch}/${dist}
    quinn-diff --arch-specific-packages=$QUINDIFF_BASE/Packages-arch-specific --architecture=$arch --packages=Packages_${dist}_${arch}_all --sources=Sources_${dist}_all > ${QUINDIFF_BASE}/${arch}/${dist} 2>> $QUINDIFF_BASE/arch_warn
    
    savelog -c 3 ${QUINDIFF_BASE}/${arch}/non-US/${dist}
    quinn-diff --arch-specific-packages=$QUINDIFF_BASE/Packages-arch-specific --architecture=$arch --packages=Packages_${dist}_${arch}_non-US_all --sources=Sources_${dist}_non-US_all  > ${QUINDIFF_BASE}/${arch}/non-US/${dist} 2>> $QUINDIFF_BASE/arch_warn
    
  done
done

for SCRPT in priority section
  do
  for arch in ${ARCHS}
    do
    case "$arch" in
	"i386" | "m68k" | "sparc" | "alpha" | "arm" | "powerpc")
	DISTRO="stable testing unstable"
	;;
	"hppa" | "ia64")
	DISTRO="testing unstable"
	;;
	*)
	DISTRO="unstable"
	;;
    esac
    for dist in ${DISTRO}
      do
      for sec in non-free contrib main
	do
	savelog -c 3 ${QUINDIFF_BASE}/${arch}/${sec}/${dist}_${SCRPT}
	/home/ishikawa/bin/gen_sort_${SCRPT} ${QUINDIFF_BASE}/${arch}/${sec}/${dist} > ${QUINDIFF_BASE}/${arch}/${sec}/${dist}_${SCRPT}
	savelog -c 3 ${QUINDIFF_BASE}/${arch}/non-US/${sec}/${dist}_${SCRPT}
	/home/ishikawa/bin/gen_sort_${SCRPT} ${QUINDIFF_BASE}/${arch}/non-US/${sec}/${dist} > ${QUINDIFF_BASE}/${arch}/non-US/${sec}/${dist}_${SCRPT}
      done
      savelog -c 3 ${QUINDIFF_BASE}/${arch}/${dist}_${SCRPT}
      /home/ishikawa/bin/gen_sort_${SCRPT} ${QUINDIFF_BASE}/${arch}/${dist} > ${QUINDIFF_BASE}/${arch}/${dist}_${SCRPT}
      savelog -c 3 ${QUINDIFF_BASE}/${arch}/non-US/${dist}_${SCRPT}
      /home/ishikawa/bin/gen_sort_${SCRPT} ${QUINDIFF_BASE}/${arch}/non-US/${dist} > ${QUINDIFF_BASE}/${arch}/non-US/${dist}_${SCRPT}
    done
  done
done

for a in ${ARCHS}
  do
  cd ${QUINDIFF_BASE}/${a}
  cvs commit -m "Today's update"
  sleep 5
done

ssh air.hanzubon.jp "/home/ishikawa/bin/quinn_update"

cd ${QUINDIFF_BASE}/
scp -r packages air.hanzubon.jp:/home/www/Linux/Debian/quinn-diff

cd ${QUINDIFF_WORK}/
rm -f *.gz *.0


