#! /bin/sh

LC_ALL=C
export LC_ALL

PPAURL="http://ppa.launchpad.net/ubuntu-mobile/ubuntu/pool/main"
WORKPATH=`pwd`
OVERWRITE=0

print_usage() {
    echo "Usage: ppaget [-d output_dir] project-name"
    echo "   -d: the directory to place the source tree"
    exit 0
}

while getopts ":d:u:hf" opt; do
    case $opt in
    d) WORKPATH=$OPTARG;;
    h) print_usage;;
    \?) print_usage;;
    esac
done
shift $(($OPTIND - 1))
if [ $# -lt 1 ]; then
    print_usage
fi
PROJECT=$1
if [ ! -d $WORKPATH ]; then
    mkdir -p $WORKPATH
fi
# find the dsc filename of the current PPA release

TMPFILE=`tempfile`
DSCURL="${PPAURL}/${PROJECT%${PROJECT#?}}/${PROJECT}"
wget $DSCURL -q -O $TMPFILE
DSCFILE=`grep -a -o "href.*dsc.*</a>" $TMPFILE | sed 's/<.*//;s/.*>//' | sort -rn | head -1`
rm -f $TMPFILE
if [ -z "$DSCFILE" ]; then
    echo "Sorry, I couldn't find any description files for project ${PROJECT}"
    exit
fi

# extract the PPA version from the dsc filename

VERSION=`echo $DSCFILE | sed 's/\.dsc//;s/.*_//'`
VERMAJOR=`echo $VERSION | sed 's/\(.*\)-.*/\1/'`

CHECK1="${WORKPATH}/${PROJECT}-${VERMAJOR}"
CHECK2="${WORKPATH}/${PROJECT}_${VERSION}.dsc"
CHECK3="${WORKPATH}/${PROJECT}_${VERSION}.diff.gz"
CHECK4="${WORKPATH}/${PROJECT}_${VERMAJOR}.orig.tar.gz"

if [ -d $CHECK1 ]; then
    rm -rf $CHECK1
fi
if [ -e $CHECK2 ]; then
    rm -f $CHECK2
fi
if [ -e $CHECK3 ]; then
    rm -f $CHECK3
fi
if [ -e $CHECK4 ]; then
    rm -f $CHECK4
fi

echo ""
echo "Getting source for project \"$PROJECT\""
echo "Placing it in $WORKPATH"
echo "URL is ${DSCURL}/${DSCFILE}"
echo ""

cd $WORKPATH
dget -x $DSCURL/$DSCFILE

echo ""
if [ -d $CHECK1 ]; then
    echo " Source tree is at: $CHECK1"
fi
if [ -e $CHECK2 ]; then
    echo "    DSC File is at: $CHECK2"
fi
if [ -e $CHECK3 ]; then
    echo "Diff tarball is at: $CHECK3"
fi
if [ -e $CHECK4 ]; then
    echo "Orig tarball is at: $CHECK4"
fi
