#!/bin/bash

PKGNAME="${1##*/}"
TDE_VERSION="${2:-${TDE_VERSION:-14.1.0}}"
DIST="$3"

[ -z "${PKGNAME}" ] && echo "You must specify a package name !" && exit 1
SPECFILE=$(get_specfile.sh ${PKGNAME} ${TDE_VERSION})
SPECDIR="${SPECFILE%/*}"
RPMPKGNAME="$(get_rpm_package_name.sh ${PKGNAME})"
[ ! -r "${SPECFILE}" ] && exit 2

while read var val; do
  case "${var}" in
    Version:*) VERSION="${val}";;
    Source*:|Source:|Patch[0-9]*:)
      if [ "${val:0:7}" = "http://" ] || [ "${val:0:8}" = "https://" ]; then
        FILE="${SPECDIR}/${val##*/}"
      else
        FILE="${SPECDIR}/${val}"
      fi
      if [ "${DIST}" = "any" ] && [ "${var//%\{?dist\}/}" = "${var}" ]; then
        FILES="${FILE//%\{?dist\}/.}"*
      else
        FILES="${FILE}"
      fi

      for FILE in $FILES; do
        for name in ${RPMPKGNAME} ${PKGNAME} trinity-${PKGNAME}; do
          file=$(rpm --define "tde_pkg ${PKGNAME}" \
                     --define "tde_version ${TDE_VERSION}" \
                     --define "name ${name}" \
                     --define "version ${VERSION}" \
                     --define "dist ${DIST:-$(rpm -E %dist)}" \
                     -E "${FILE}")
          [ -r "${file}" ] && break
        done
        [ -r "${file}" ] && echo "${file}"
      done
    ;;
  esac
done < "${SPECFILE}"
