#!/usr/bin/env bash

# We want to catch any unexpected failure, and exit immediately
set -e

# Download helper for cvs, to be called from the download wrapper script
#
# Call it as:
#   .../cvs [-q] OUT_FILE CVS_URL REV PKG_NAME BASENAME
#
# Environment:
#   CVS      : the cvs command to call

verbose=
while getopts :q OPT; do
    case "${OPT}" in
    q)  verbose=-Q;;
    \?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;;
    esac
done
shift $((OPTIND-1))

output="${1}"
repo="${2}"
rev="${3}"
rawname="${4}"
basename="${5}"

# Caller needs to single-quote its arguments to prevent them from
# being expanded a second time (in case there are spaces in them)
_cvs() {
    eval ${CVS} "${@}"
}

if [[ ${rev} =~ ^[0-9] ]]; then
    # Date, because a tag or a branch cannot begin with a number
    select="-D"
else
    # Tag or branch
    select="-r"
fi

# The absence of an initial : on ${repo} means access method undefined
if [[ ! "${repo}" =~ ^: ]]; then
   # defaults to anonymous pserver
   repo=":pserver:anonymous@${repo}"
fi

export TZ=UTC
_cvs ${verbose} -z3 -d"'${repo}'" \
     co -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'"

tar czf "${output}" "${basename}"
