#!/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}"

shift 5 # Get rid of our options

# 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}"
