From 467dbdbf3d7212e25ee69daeaadd8adba7c7c5b8 Mon Sep 17 00:00:00 2001 From: Björn Mattsson Date: Mon, 6 Mar 2023 11:22:05 +0100 Subject: Moved files to make ths repo signed --- metadata/scripts/remove_entity.sh | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 metadata/scripts/remove_entity.sh (limited to 'metadata/scripts/remove_entity.sh') diff --git a/metadata/scripts/remove_entity.sh b/metadata/scripts/remove_entity.sh new file mode 100755 index 00000000..60645a7e --- /dev/null +++ b/metadata/scripts/remove_entity.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +error() +{ + echo "Error: $*" + exit 1 +} + +if [ -z "$1" ]; then + echo "$0 " + exit +fi + +metadataurl=$1 + +if [ -s "${metadataurl}" ]; then + entityidfn=$(basename "$metadataurl") +else + case $metadataurl in + [0-9][0-9]*) + url="https://metadata.swamid.se/?rawXML=${metadataurl}" + ;; + https://metadata.swamid.se/?showEntity=*) + #url=$(echo "$metadataurl" | sed 's;showEntity;rawXML;') + url=${metadataurl//showEntity/rawXML} + ;; + 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 | sed 's/ //g')" = "1" ] || error "Multiple entityid:s found: $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 +file=$(find swamid-testing swamid-2.0 swamid-edugain -name "$entityidfn" | head -1) + +if [ -r "$file" ]; then + echo "---------------------" + grep "$file" ./*.mxml + echo "---------------------" + echo -n "OK to remove ? [Y/n]" + read -r x + case $x in + "Y"|"y"|"") ;; + *) exit 1 ;; + esac + + echo + git rm "$file" + + grep "$file" ./*.mxml | sed 's/\(.*\.mxml\): /\1/' | while read -r mxmlfile ; do + sed -i.bak "/\/$entityidfn/d" "$mxmlfile" + if [ -f "$mxmlfile".bak ]; then + rm "$mxmlfile".bak + fi + done + git diff + git status +else + error "File not found: $file" +fi -- cgit v1.2.3