#!/bin/bash
#
# Fetch Service Provider metadata and save into entityid filename
#

error()
{
	echo "Error: $*" 1>&2
	exit 1
}

metadata=$1
if [ -z "$metadata" ] ; then
	cat <<EOF
Usage: `basename $0` <file to check>
Ex:    `basename $0` account.eciu.eu.xml
EOF
	exit 1
fi

entityid=`cat "$metadata" | sed -n 's/.*entityID=['\''"]\([^"]*\)['\''"].*/\1/p'`
[ -n "$entityid" ] || error "Failed to find entityID in metadata"
[ `echo "$entityid" | wc -l` = 1 ] || error "Multiple entityid:s found: `echo $entityid`"

entityidfn=`echo "$entityid" | sed 's;https*://;;' | sed 's/[^a-zA-Z0-9_.-]/-/g' | sed 's/$/.xml/'`
[ -n "$entityidfn" ] || error "Failed to generate filename from entityid $entityid"

[ -r "$entityidfn" ] && new=false || new=true
if $new ; then
	echo -n "Move $metadata into $entityidfn [Y/n]? "
else
	echo "$entityidfn and $metadata are the same"
	exit
fi
read x
case $x in
	Y|y|"")
		git mv $metadata $entityidfn

		;;
	*)
		echo "Nothing done"
		;;
esac