#!/bin/bash error() { echo "Error: $*" exit 1 } if [ -z "$1" ]; then echo "$0 <Filename / id from metadata to remove>" 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 "---------------------" echo "$file" echo "---------------------" echo -n "OK to remove ? [Y/n]" read -r x case $x in "Y"|"y"|"") ;; *) exit 1 ;; esac echo git rm "$file" git diff git status else error "File not found: $file" fi