#!/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 "$ME --old-release OLD_RELEASE --new-release NEW_RELEASE --project-id PROJECT_ID --project-name PROJECT_NAME"
	exit 1
}

DEBUG=no
for i in $@ ; do
	case "${1}" in
	"--old-release")
		if [ -z "${2}" ] ; then
			echo "No parameter defining the old release."
			usage
		fi
		OLD_RELEASE=${2}
		shift
		shift
	;;
	"--new-release")
		if [ -z "${2}" ] ; then
			echo "No parameter defining the new release."
			usage
		fi
		NEW_RELEASE=${2}
		shift
		shift
	;;
	"--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
	;;
	"--debug")
		DEBUG=yes
		shift
	;;
	*)
	;;
	esac
done

if [ -z "${OLD_RELEASE}" ] ; then
	echo "No OLD_RELEASE defined."
	usage
fi
if [ -z "${NEW_RELEASE}" ] ; then
	echo "No NEW_RELEASE defined."
	usage
fi
if [ -z "${PROJECT_ID}" ] ; then
	echo "No PROJECT_ID defined."
	usage
fi
if [ -z "${PROJECT_NAME}" ] ; then
	echo "No PROJECT_NAME defined."
	usage
fi

    BLUE="\033[1;34m"
   LGRAY="\033[0;37m"
  NO_COL="\033[0m"
   LBLUE="\033[1;36m"
     RED="\033[1;31m"
   GREEN="\033[1;32m"
   WHITE="\033[1;37m"
  YELLOW="\033[1;33m"
LINEWRAP="\033[7h"
      UP="\033[1A"
    DOWN="\033[1B"
      NL="\033[1E"
      RN="\033[1S"

echo "${YELLOW}-> New branch debian/${NEW_RELEASE} from debian/${OLD_RELEASE} for ${PROJECT_ID}, ${PROJECT_NAME}${NO_COL}"
if [ "${DEBUG}" = "yes" ] ; then
	echo "Posting to: https://salsa.debian.org/api/v4/projects/${PROJECT_ID}/repository/branches?branch=debian/${NEW_RELEASE}&ref=debian/${OLD_RELEASE}"
	CURL_OPT="-i"
else
	CURL_OPT="-s"
fi
if [ "${DEBUG}" = "no" ] ; then
	curl ${CURL_OPT} --request POST --header "PRIVATE-TOKEN: ${SALSA_TOKEN}" \
		"https://salsa.debian.org/api/v4/projects/${PROJECT_ID}/repository/branches?branch=debian/${NEW_RELEASE}&ref=debian/${OLD_RELEASE}"
	echo ""
fi
