summaryrefslogtreecommitdiff
path: root/metadata/scripts/get-metadata.sh
diff options
context:
space:
mode:
Diffstat (limited to 'metadata/scripts/get-metadata.sh')
-rwxr-xr-xmetadata/scripts/get-metadata.sh57
1 files changed, 29 insertions, 28 deletions
diff --git a/metadata/scripts/get-metadata.sh b/metadata/scripts/get-metadata.sh
index 13148a03..78d9d717 100755
--- a/metadata/scripts/get-metadata.sh
+++ b/metadata/scripts/get-metadata.sh
@@ -12,21 +12,21 @@ error()
metadataurl=$1
if [ -z "$metadataurl" ] ; then
cat <<EOF
-Usage: `basename $0` <metadataurl>
-Ex: `basename $0` https://metadata.swamid.se/?showEntity=5271
- `basename $0` 5271
- `basename $0` https://shibsp.mysite.com/Shibboleth.sso/Metadata
- `basename $0` https://shibidp.mysite.com/idp/profile/Metadata/SAML
- `basename $0` some-downloaded-metadata.xml
- `basename $0` reep:<entityid>
- `basename $0` <hostname> (tries to pull from standard locations)
+Usage: $0 <metadataurl>
+Ex: $0 https://metadata.swamid.se/?showEntity=5271
+ $0 5271
+ $0 https://shibsp.mysite.com/Shibboleth.sso/Metadata
+ $0 https://shibidp.mysite.com/idp/profile/Metadata/SAML
+ $0 some-downloaded-metadata.xml
+ $0 reep:<entityid>
+ $0 <hostname> (tries to pull from standard locations)
EOF
exit 1
fi
xmldir=swamid-2.0
if [ -s "${metadataurl}" ]; then
- metadata=`cat "$metadataurl"`
+ metadata=$(cat "$metadataurl")
else
case $metadataurl in
[0-9][0-9]*)
@@ -43,7 +43,7 @@ else
urls="$metadataurl"
;;
reep://*)
- id=`echo -n "$metadataurl" | sed 's/^reep://' | sha1sum | awk '{print $1}'`
+ id=$(echo -n "$metadataurl" | sed 's/^reep://' | sha1sum | awk '{print $1}')
metadataurl="http://md.reep.refeds.org/entities/%7Bsha1%7D$id"
urls="$metadataurl"
;;
@@ -55,53 +55,54 @@ else
;;
esac
for i in ${urls}; do
- metadata=`curl -L -m 5 -s -k -f "${i}"`
+ metadata=$(curl -L -m 5 -s -k -f "${i}")
[ -n "${metadata}" ] && break
done
fi
[ -n "$metadata" ] || error "Failed to fetch metadata from $metadataurl"
-script_cwd=`dirname "$0"`
-if test -d $xmldir ; then
+script_cwd=$(dirname "$0")
+if test -d "$xmldir" ; then
echo "Moving into $xmldir/"
- cd $xmldir
+ cd "$xmldir" || exit 1
echo "$script_cwd" | grep -q ^/ || script_cwd=../$script_cwd
fi
-entityid=`echo "$metadata" | sed -n 's/.*entityID=['\''"]\([^"]*\)['\''"].*/\1/p'`
+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`"
+# shellcheck disable=SC2046,SC2086
+[ $(echo "$entityid" | wc -l) = 1 ] || error "Multiple entityid:s found:" $entityid
-entityidfn=`echo "$entityid" | sed 's;.*://;;' | sed 's/[^a-zwA-ZW0-9_.-]/-/g' | sed 's/$/.xml/'`
+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"
-OLDFILE=$(find ../swamid-testing ../swamid-2.0 ../swamid-edugain -name $entityidfn | grep -v $xmldir)
+OLDFILE=$(find ../swamid-testing ../swamid-2.0 ../swamid-edugain -name "$entityidfn" | grep -v "$xmldir")
if [ -n "$OLDFILE" ]; then
echo "Moving $OLDFILE into $xmldir"
- git mv $OLDFILE $entityidfn
+ git mv "$OLDFILE" "$entityidfn"
fi
[ -r "$entityidfn" ] && new=false || new=true
-if $new ; then
+if "$new" ; then
echo -n "Save metadata into $entityidfn [Y/n]? "
else
regdate=$(sed -n 's;.*RegistrationInfo.*registrationInstant="\([^"]*\)".*;\1;p' < "$entityidfn" | head -n 1)
echo -n "Replace $entityidfn with metadata [Y/n]? "
fi
-[ -n "$regdate" ] || regdate=$(perl $script_cwd/../scripts/now_date.pl)
+[ -n "$regdate" ] || regdate=$(perl "$script_cwd/../scripts/now_date.pl")
-read x
+read -r x
case $x in
Y|y|"")
- echo "$metadata" > $entityidfn
- tmp=`mktemp`
- xsltproc --stringparam regDate "$regdate" $script_cwd/../xslt/add-rpi.xsl ${entityidfn} > ${tmp} && mv ${tmp} ${entityidfn}
- xsltproc $script_cwd/../xslt/clean-entitydescriptor.xsl ${entityidfn} > ${tmp} && mv ${tmp} ${entityidfn}
+ echo "$metadata" > "$entityidfn"
+ tmp=$(mktemp)
+ xsltproc --stringparam regDate "$regdate" "$script_cwd/../xslt/add-rpi.xsl" "${entityidfn}" > "${tmp}" && mv "${tmp}" "${entityidfn}"
+ xsltproc "$script_cwd/../xslt/clean-entitydescriptor.xsl" "${entityidfn}" > "${tmp}" && mv "${tmp}" "${entityidfn}"
if $new ; then
echo -n "Add ${xmldir}/$entityidfn to git [Y/n]? "
- read x
+ read -r x
case $x in
Y|y|"")
- git add $entityidfn
+ git add "$entityidfn"
;;
*)
echo "Not added"