# mpk-source - downloads source code.
# Copyright (C) 2008,2010 Cesar Strauss
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

get_source()
{
  do_get_source
}

do_get_source()
{
  : ${source_package_type:=tar.gz}
  : ${source:=$name-$version.$source_package_type}
  : ${gnu_mirror:=http://ftp.gnu.org/pub/gnu}

  if [ -z "$force" -a -e $sourcedir/$source ]; then
    exit 0
  fi

  if [ -n "$origin" ]; then
    case $origin in
      gnu) pkg_download="$gnu_mirror/$name/$source";;
      sf) pkg_download="http://downloads.sourceforge.net/sourceforge/$name/$source";;
      *) echo >&2 "$name: Unknown origin."; exit 1;;
    esac
  fi
  
  if [ -n "$download" ]; then
    pkg_download=$download/$source
  fi

  if [ -z "$pkg_download" ]; then
    echo >&2 "$name: download location not found."
    exit 1
  fi

  mkdir -p $sourcedir/partial
  cd $sourcedir/partial
  echo Downloading $name from $pkg_download ...
  wget $wget_flags -c $pkg_download

  if [ $? != 0 ]; then
    echo >&2 "$(basename $0) source: Failed to download $name"
    exit 1
  fi
  
  mv $sourcedir/partial/$source $sourcedir
}

case $1 in
  -f|--force) force=yes; shift;;
  -*) echo "$(basename $0) source: unrecognized option"; exit 1;;
esac

pkg=$1

if [ -z "$pkg" ]; then
  echo "Usage: $(basename $0) source package-name ..."
  exit 1
fi

recipe=$(get_recipe_name $pkg) || exit 1

. $recipe

get_source

