#!/bin/bash
TMPDIR=/tmp
MAXRESULTS=50
STARTINDEX=1
ENDINDEX=651

# unpack the tar.gz and store the .po
function targz {
  outfile=`basename $packageuri`
  wget -O $outfile $packageuri
  tar -C $TMPDIR -xzf $outfile $filename
  checksum=`sha1sum $TMPDIR/$filename |awk '{print $1}'`
  mv $TMPDIR/$filename $checksum.po
}

# unpack the tar.bz2 and store the .po
function tarbz2 {
  outfile=`basename $packageuri`
  wget -O $outfile $packageuri
  tar -C $TMPDIR -xjf $outfile $filename
  checksum=`sha1sum $TMPDIR/$filename |awk '{print $1}'`
  mv $TMPDIR/$filename $checksum.po
}
# get the .po file over http
function plainpo {
  outfile=`basename $filename`
  wget -O $outfile $packageuri/$filename
  checksum=`sha1sum $outfile |awk '{print $1}'`
  mv $outfile $checksum.po
}

function plainsvn {
  outfile=`basename $filename`
  svn export $packageuri/$filename
  checksum=`sha1sum $outfile |awk '{print $1}'`
  mv $outfile $checksum.po
}

for i in `seq $STARTINDEX $MAXRESULTS $ENDINDEX`
do
   # download the gdata feeds
   wget -q -O $i.tmp "http://www.google.com/codesearch/feeds/search?q=file%3A%2Fbe%5C.po%24&start-index=$i&max-results=$MAXRESULTS"  && xmllint --format $i.tmp > $i.xml
   rm $i.tmp
   # exctract the package name and the file name
   xsltproc parse-gdata.xsl $i.xml |while read packagename; read packageuri; read filename
     do
       # guess the package type
       # tar.bz2 over http
       if [[ $packageuri =~ "^http://.*tar.gz$" ]]
       then
         echo "Unpacking $packageuri..."
         targz
       # tar.gz over http
       elif [[ $packageuri =~ "^http://.*tar.bz2$" ]]
       then
         echo "Unpacking $packageuri..."
         tarbz2
       # plain text file over http
       elif [[ $packageuri =~ "^http://" && $filename =~ "\/be\.po$" ]] 
       then
         echo "Unpacking $packageuri..."
         plainpo
       # file in an svn repository
       elif [[ $packageuri =~ "^svn://" && $filename =~ "\/be\.po$" ]] 
       then
         echo "Unpacking $packageuri..."
         plainsvn
       fi
     done
done


