summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorBjörn Mattsson <bjorn@sunet.se>2021-04-06 14:05:18 +0200
committerBjörn Mattsson <bjorn@sunet.se>2021-04-06 14:05:18 +0200
commitb03385cfb9ee8015ad88c83e5f07ddc51b3bfcf0 (patch)
tree5477454062b3d7ba9e63c5249d4605c32ee56542 /scripts
parentfedc3a69b8cc110eaf1f99f4f1521c2854f22d97 (diff)
Rename to remove duplicates in swamid-2.0.xml
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rename-xml.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/rename-xml.sh b/scripts/rename-xml.sh
new file mode 100755
index 00000000..9ef89ead
--- /dev/null
+++ b/scripts/rename-xml.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+#
+# Fetch Service Provider metadata and save into entityid filename
+#
+
+error()
+{
+ echo "Error: $*" 1>&2
+ exit 1
+}
+
+entityID=$1
+if [ -z "$entityID" ] ; then
+ cat <<EOF
+Usage: `basename $0` <entityID>
+Ex: `basename $0` https://shibsp.mysite.com/swamidproxy/gitlab.xml
+EOF
+ exit 1
+fi
+
+if [ `uname -s` == "Darwin" ]; then
+ SEDI="sed -i ''"
+else
+ SEDI="sed -i"
+fi
+
+script_cwd=`dirname "$0"`
+if test -d swamid-2.0 ; then
+ echo "Moving into swamid-2.0/"
+ cd swamid-2.0
+ echo "$script_cwd" | grep -q ^/ || script_cwd=../$script_cwd
+fi
+
+if echo "$entityID" | grep -qE '^http://|^https://' ; then
+ metadata=`grep -il "$entityID" *`
+else
+ echo "Missing http(s) in entityID"
+fi
+[ -n "$metadata" ] || error "Failed to fetch metadata from $metadataurl"
+
+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|"")
+ grep -l "$metadata\"" ../*.mxml | while read file; do
+ $SEDI "s;href=\"swamid-2.0/$metadata\";href=\"swamid-2.0/$entityidfn\";" $file
+ done
+ git mv $metadata $entityidfn
+
+ ;;
+ *)
+ echo "Nothing done"
+ ;;
+esac