#!/usr/bin/env bash
set -e
redo-ifchange ../packages.rc ../.vars.rc
. ../.vars.rc
. ../packages.rc

set -f
IFS=:; p=($1); d=(${packages[$1]})
set +f
group=${p[0]}
artifact=${p[1]}
version=${p[2]}
packaging=${d[0]}
repo=${d[1]}
valid_sum=${d[2]}

hash_file() { sha256sum "$1" 2>/dev/null | cut -d ' ' -f 1; }

if [[ $valid_sum ]] && [[ $(hash_file "$1.$packaging") == "$valid_sum" ]]; then
	cp "$1.$packaging" "$2"
	exit
fi

url=${MAVEN_REPO[$repo]}/${group//.//}/$artifact/$version/$artifact-$version.$packaging
curl --silent --show-error --fail --output "$2" "$url"
sum=$(hash_file "$2")
if [[ $valid_sum ]] && [[ $sum != "$valid_sum" ]]; then
	printf '%s: checksum mismatch (got: %s)\n' "$pkg" "$sum" >&2
	rm "$2"
	exit 1
fi
if [[ ! $valid_sum ]]; then
	printf "sed -i 's/^packages(_[a-z]*){0,1}\\[%s:%s:%s\\]=%s:%s:$/&%s/' packages.rc\n" "$group" "$artifact" "$version" "$packaging" "$repo" "$sum" >&2
fi
# vim:ft=bash