summaryrefslogtreecommitdiff
path: root/scripts/remove_entity.sh
diff options
context:
space:
mode:
authorBjörn Mattsson <bjorn@sunet.se>2022-05-05 15:54:54 +0200
committerBjörn Mattsson <bjorn@sunet.se>2022-05-05 15:54:54 +0200
commitf2c8d6de1cc43eab32f8a17f60443c37dd6ef13d (patch)
tree11892beec02a00a1b3513c4698e3dab9e94f741e /scripts/remove_entity.sh
parent8434b497e72d68adaca8cb1155a0694bdb3fe364 (diff)
Added functions to get enityID / Filename from metadata.swamid.se
Diffstat (limited to 'scripts/remove_entity.sh')
-rwxr-xr-xscripts/remove_entity.sh84
1 files changed, 53 insertions, 31 deletions
diff --git a/scripts/remove_entity.sh b/scripts/remove_entity.sh
index d9350c2b..ecf75bf4 100755
--- a/scripts/remove_entity.sh
+++ b/scripts/remove_entity.sh
@@ -1,42 +1,64 @@
#!/bin/bash
if [ -z "$1" ]; then
- echo "$0 <Filename / part of to remove>"
+ echo "$0 <Filename / id from metadata to remove>"
exit
fi
-echo "---------------------"
-grep $1 *.mxml sp-with-simplesign
-echo "---------------------"
-echo -n "OK to remove ? [Y/n]"
-read x
-case $x in
- "Y"|"y"|"") ;;
- *) exit 1 ;;
-esac
-
-echo
-if [ `uname -s` == "Darwin" ]; then
- MacOSX=true
+metadataurl=$1
+
+if [ -s "${metadataurl}" ]; then
+ entityidfn=$metadataurl
else
- MacOSX=false
-fi
-if (grep -q $1 sp-with-simplesign); then
- if ( $MacOSX ) ; then
- sed -i "" "/$1/d" sp-with-simplesign
- else
- sed -i "/$1/d" sp-with-simplesign
- fi
+ case $metadataurl in
+ [0-9][0-9]*)
+ url="https://metadata.swamid.se/?rawXML=${metadataurl}"
+ ;;
+ esac
+ metadata=`curl -L -m 5 -s -k -f "${url}"`
+
+ [ -n "$metadata" ] || error "Failed to fetch metadata from $metadataurl"
+
+ entityid=`echo "$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;.*://;;' | sed 's/[^a-zwA-ZW0-9_.-]/-/g' | sed 's/$/.xml/'`
+ [ -n "$entityidfn" ] || error "Failed to generate filename from entityid $entityid"
fi
-grep $1 *.mxml | sed 's/.*: <xi:include href="\(.*\)"\/>/\1/' | while read file ; do
- git rm $file
-done
+file="swamid-2.0/$entityidfn"
+
+if [ -r "$file" ]; then
+ echo "---------------------"
+ grep $entityidfn *.mxml sp-with-simplesign
+ echo "---------------------"
+ echo -n "OK to remove ? [Y/n]"
+ read x
+ case $x in
+ "Y"|"y"|"") ;;
+ *) exit 1 ;;
+ esac
-grep $1 *.mxml | sed 's/\(.*\.mxml\): <xi:include href=".*"\/>/\1/' | while read file ; do
- if ( $MacOSX ) ; then
- sed -i "" "/$1/d" $file
+ echo
+ if [ `uname -s` == "Darwin" ]; then
+ MacOSX=true
else
- sed -i "/$1/d" $file
+ MacOSX=false
fi
-done
-git diff
+ if (grep -q $entityidfn sp-with-simplesign); then
+ if ( $MacOSX ) ; then
+ sed -i "" "/$entityidfn/d" sp-with-simplesign
+ else
+ sed -i "/$entityidfn/d" sp-with-simplesign
+ fi
+ fi
+ git rm $file
+ grep $file *.mxml | sed 's/\(.*\.mxml\): <xi:include href=".*"\/>/\1/' | while read mxmlfile ; do
+ if ( $MacOSX ) ; then
+ sed -i "" "/$entityidfn/d" $mxmlfile
+ else
+ sed -i "/$entityidfn/d" $mxmlfile
+ fi
+ done
+ git diff
+fi