X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=update-archive%2Fupdate-archive.sh;h=e7fbabdf0538dfa7761209c2a51632f38305d03f;hb=6d159ce7a02e7f3c550c14380ff8fa96addfa639;hp=03d3fe8053af96e984563f5aa77b085805043ed7;hpb=4899d5ff358df3d3a668e3439b834b8800e97ae5;p=git-tools-moved-to-github.git diff --git a/update-archive/update-archive.sh b/update-archive/update-archive.sh index 03d3fe8..e7fbabd 100755 --- a/update-archive/update-archive.sh +++ b/update-archive/update-archive.sh @@ -1,5 +1,4 @@ #!/bin/sh -# $Id: update-archive.sh,v 1.12 2007-11-11 19:47:15 adam Exp $ if test ! -f apt-ftparchive.conf.in; then echo "$0: apt-ftparchive.conf.in must be located in current directory" exit 1 @@ -10,83 +9,124 @@ if test ! -x /usr/bin/apt-ftparchive; then exit 1 fi -if test -z "$1"; then - debiandir=/home/ftp/pub/debian -else - debiandir=$1 -fi +# gpg -a -d -o Release.gpg Release -if test ! -d "$debiandir"; then - echo "$0: The specified '$debiandir' is not a directory" - exit 1 -fi +confdir=`pwd` +architectures="i386 amd64" -# gpg -a -d -o Release.gpg Release +for vdist in ubuntu/karmic ubuntu/lucid ubuntu/maverick \ + ubuntu/natty ubuntu/oneiric ubuntu/precise \ + debian/wheezy debian/squeeze debian/lenny \ + debian/etch; do + dist=`basename $vdist` + vendor=`dirname $vdist` + ftpdir=/home/ftp/pub/$vendor + if test ! -d $ftpdir; then + echo "$ftpdir does not exist" + exit 1 + fi + cd $ftpdir + test -d tmp || mkdir tmp + # Uncomment to clean the .db (cache) + # rm tmp/* -confdir=`pwd` -cd $debiandir + sections="" + for section in main restricted; do + # Prepare pool + d=pool/dists/$dist/$section + if test ! -d $d; then mkdir -p $d; fi + mkdir -p $d/source + # Remove invalid symlinks (source, i386, amd64,..) + for l in $d/*/*; do + if test -L "$l"; then + if test ! -f "$l"; then + rm $l + fi + fi + done + # Make symlinks from the regular FTP archive + has_packages=false + for pdir in /home/ftp/pub/*; do + use=false + if test -f $pdir/.htaccess -a $section != "main"; then + use=true + fi + if test ! -f $pdir/.htaccess -a $section = "main"; then + use=true + fi + if $use; then + distdir=$pdir/$vendor/$dist + if test -d $distdir; then + for f in $distdir/*.dsc $distdir/*.gz; do + test -f $f && ln -sf $f $d/source + done + for arch in $architectures; do + mkdir -p $d/${arch} + for f in $pdir/.htaccess \ + $distdir/*_${arch}.* \ + $distdir/*_all.*; do + if test -f $f; then + ln -sf $f $d/${arch} + has_packages=true + fi + done + done + fi + fi + done + # ${confdir}/symclean.sh $d -for dist in lenny etch sarge woody; do - # Make symlinks from the regular FTP archive - d=pool/$dist - if test ! -d $d; then mkdir -p $d; fi - for l in $d/*; do - if test -L $l; then - if test -f $l; then - : + rm -f $d/Release + if $has_packages; then + if test -z "$sections"; then + sections="$section" else - rm $l + sections="$sections $section" fi + for arch in $architectures; do + d=dists/$dist/$section/binary-$arch + if test ! -d $d; then mkdir -p $d; fi + echo "Archive: $dist" >$d/Release + echo "Component: $section" >>$d/Release + echo 'Origin: Indexdata' >>$d/Release + echo "Architecture: $arch" >>$d/Release + done + d=dists/$dist/$section/source + if test ! -d $d; then mkdir -p $d; fi + echo "Archive: $dist" >$d/Release + echo "Component: $section" >>$d/Release + echo 'Origin: Indexdata' >>$d/Release + echo 'Architecture: source' >>$d/Release fi done - ln -sf /home/ftp/pub/*/debian/$dist/* $d - - # ${confdir}/symclean.sh $d - - d=dists/$dist/main/binary-i386 - if test ! -d $d; then mkdir -p $d; fi - echo "Archive: $dist" >$d/Release - echo 'Component: main' >>$d/Release - echo 'Origin: Indexdata' >>$d/Release - echo 'Architecture: i386' >>$d/Release - - d=dists/$dist/main/source - if test ! -d $d; then mkdir -p $d; fi - echo "Archive: $dist" >$d/Release - echo 'Component: main' >>$d/Release - echo 'Origin: Indexdata' >>$d/Release - echo 'Architecture: source' >>$d/Release - # generate + echo "Begin Generate $dist: $sections" F=apt-ftparchive.conf - sed "s/@dist@/$dist/g" <${confdir}/${F}.in >$F + sed "s/@dist@/$dist/g" <${confdir}/${F}.in | \ + sed "s/@architectures@/${architectures}/g" | \ + sed "s/@sections@/${sections}/g" > $F # Don't know if clean is needed! # apt-ftparchive clean apt-ftparchive.conf apt-ftparchive generate apt-ftparchive.conf + echo "Done generate $dist: $sections" # release r=dists/$dist/Release F=apt-release.conf - sed "s/@dist@/$dist/g" <${confdir}/${F}.in >$F + sed "s/@dist@/$dist/g" <${confdir}/${F}.in | \ + sed "s/@architectures@/${architectures}/g" | \ + sed "s/@sections@/${sections}/g" > $F # Move Release file away while calling using release rm $r apt-ftparchive -c $F release dists/$dist >tmp_Release mv tmp_Release $r # sign - r=dists/$dist/Release - rm -f ${r}.gpg - gpg --sign -u "Index Data" -ba -o ${r}.gpg dists/$dist/Release - - # Make symlinks to make old sources list work (makedeb.sh compat) - F=dists/indexdata/$dist - if test ! -d $F; then - mkdir -p $F - fi - F=dists/indexdata/$dist/released - if test ! -d $F; then - ln -s /home/ftp/pub/debian/dists/$dist/main $F + if true; then + r=dists/$dist/Release + rm -f ${r}.gpg + gpg --sign -u "Index Data" -ba -o ${r}.gpg dists/$dist/Release fi done # Local Variables: