#!/bin/sh

set -e

. /etc/pkgos/pkgos.conf

if [ -z "${SALSA_TOKEN}" ] ; then
        echo "The \$SALSA_TOKEN variable is empty. Please export it with" >/dev/stderr
        echo "a valid salsa.debian.org token as content." >/dev/stderr
        exit 1
fi

ME=$(basename $0)

usage () {
	echo "usage: $ME --project-name PROJECT_NAME --debian-release <suite> --openstack-release <openstack-release-name> --jenkins-token <jenkins-token> [--project-id PROJECT_ID]"
	exit 1
}

for i in $@ ; do
	case "${1}" in
	"--project-id")
		if [ -z "${2}" ] ; then
			echo "No parameter defining the project ID."
			usage
		fi
		PROJECT_ID=${2}
		shift
		shift
	;;
	"--project-name")
		if [ -z "${2}" ] ; then
			echo "No parameter defining the project name."
			usage
		fi
		PROJECT_NAME=${2}
		shift
		shift
	;;
	"--debian-release")
		if [ -z "${2}" ] ; then
			echo "No parameter for --debian-release."
			usage
		fi
		DEBIAN_RELEASE=${2}
		shift
		shift
	;;
	"--openstack-release")
		if [ -z "${2}" ] ; then
			echo "No parameter for --openstack-release."
			usage
		fi
		OPENSTACK_RELEASE=${2}
		shift
		shift
	;;
	"--jenkins-token")
		if [ -z "${2}" ] ; then
			echo "No parameter for --jenkins-token."
			usage
		fi
		JENKINS_TOKEN=${2}
		shift
		shift
	;;
	*)
	;;
	esac
done

if [ -z "${PROJECT_NAME}" ] ; then
	echo "--project-name missing"
	usage
fi

if [ -z "${DEBIAN_RELEASE}" ] ; then
	echo "--debian-release missing"
	usage
fi

if [ -z "${OPENSTACK_RELEASE}" ] ; then
	echo "--openstack-release missing"
	usage
fi
BRANCH=debian/${OPENSTACK_RELEASE}

if [ -z "${JENKINS_TOKEN}" ] ; then
	echo "No \$JENKINS_TOKEN env var or --jenkins-token param."
	usage
fi

if [ -z "${PROJECT_ID}" ] ; then
	PROJECT_ID=$(pkgos-salsa-get-project-id --project-name ${PROJECT_NAME})
	if [ -z "${PROJECT_ID}" ] ; then
		echo "Cannot find project id for ${PROJECT_NAME}"
		exit 1
	fi
fi

URL=$(urlencode "https://${DEBIAN_RELEASE}-${OPENSTACK_RELEASE}.debian.net/project/${PROJECT_NAME}")
ENCODED_BRANCH=$(urlencode ${BRANCH})

set -x
echo "New webhook for ${PROJECT_NAME}, ${DEBIAN_RELEASE} and ${OPENSTACK_RELEASE}"
curl -X POST -H "PRIVATE-TOKEN: ${SALSA_TOKEN}" \
	"https://salsa.debian.org/api/v4/projects/${PROJECT_ID}/hooks?push_events=true&url=${URL}&token=${JENKINS_TOKEN}&push_events_branch_filter=${ENCODED_BRANCH}"
echo ""
