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

if ! [ -r ${SUBGROUP_FILE} ] ; then
	pkgos-salsa-list-all-subgroups
fi

echo -n "" >${ALLGIT_FILE}

for i in `cat ${SUBGROUP_FILE}` ; do
	CURL_DATA=$(mktemp)
	CURL_VERBOSE=$(mktemp)
	TMPFILE2=$(mktemp)
	TMPFILE3=$(mktemp)

	SUBGROUP=$(echo $i | cut -d, -f1)
	SUBGROUP_ID=$(echo $i | cut -d, -f2)
	echo "Exploring ${SUBGROUP}..."
	PAGE=0
	while [ "$PAGE" ] ; do
		curl \
			--verbose \
			-o "$CURL_DATA" \
			--header "PRIVATE-TOKEN: ${SALSA_TOKEN}" \
			"https://salsa.debian.org/api/v4/groups/${SUBGROUP_ID}/projects?archived=false&simple=true&page=$PAGE&per_page=10000" \
			>/dev/null \
			2>${CURL_VERBOSE}
		PAGE=$(cat "$CURL_VERBOSE" | grep X-Next-Page | sed 's/.*: *//' | tr -d " \r\n")
		PAGES=$(cat "$CURL_VERBOSE" | grep X-Total-Pages | sed 's/.*: *//' | tr -d " \r\n")
		if [ "$PAGE" ] ; then
			echo "$PAGE / $PAGES"
		fi
		cat "$CURL_DATA" | jq '.[] | .path_with_namespace' | sed 's/"//g' >>${TMPFILE2}
		cat "$CURL_DATA" | jq '.[] | .id' | sed 's/"//g' >>${TMPFILE3}
	done
	CNT=1
	for j in `cat "$TMPFILE2"` ; do
		echo -n "${j}.git," >>${ALLGIT_FILE}
		sed ${CNT}'!d' "$TMPFILE3" >>${ALLGIT_FILE}
		CNT=$((${CNT} + 1))
	done
	rm "$CURL_DATA" "$CURL_VERBOSE" "$TMPFILE2" "$TMPFILE3"
done
