[Pkg-mono-svn-commits] rev 3602 - mono/trunk/debian
Mirco Bauer
meebey at alioth.debian.org
Thu Mar 20 19:44:33 UTC 2008
Author: meebey
Date: 2008-03-20 19:44:33 +0000 (Thu, 20 Mar 2008)
New Revision: 3602
Modified:
mono/trunk/debian/mono-api-check
Log:
- implemented -k switch
Modified: mono/trunk/debian/mono-api-check
===================================================================
--- mono/trunk/debian/mono-api-check 2008-03-20 19:17:48 UTC (rev 3601)
+++ mono/trunk/debian/mono-api-check 2008-03-20 19:44:33 UTC (rev 3602)
@@ -1,20 +1,11 @@
#!/bin/sh
NAME=$(basename $0)
-MONO_API_INFO1="/usr/bin/mono /usr/lib/mono/1.0/mono-api-info.exe"
-MONO_API_INFO2="/usr/bin/mono /usr/lib/mono/2.0/mono-api-info.exe"
-MONO_API_DIFF="/usr/bin/mono /usr/lib/mono/1.0/mono-api-diff.exe"
+MONO_API_INFO1="/usr/lib/mono/1.0/mono-api-info.exe"
+MONO_API_INFO2="/usr/lib/mono/2.0/mono-api-info.exe"
+MONO_API_DIFF="/usr/lib/mono/1.0/mono-api-diff.exe"
-if [ ! -e "$1" -a ! -e "$2" ]
-then
- echo "usage: $NAME [-2] old.dll new.dll"
- exit 1
-fi
-API_OLD=$(tempfile)
-API_NEW=$(tempfile)
-API_DIFF=$(tempfile)
-
if [ "$1" = "-2" ]; then
if [ ! -x $MONO_API_INFO2 ]; then
echo "Error: $MONO_API_INFO2 does not exist, you need to install the mono-gmcs package"
@@ -26,12 +17,42 @@
MONO_API_INFO=$MONO_API_INFO1
fi
-${MONO_API_INFO} "$1" > ${API_OLD}
-${MONO_API_INFO} "$2" > ${API_NEW}
-${MONO_API_DIFF} ${API_OLD} ${API_NEW} > ${API_DIFF}
+KEEP=0
+if [ "$1" = "-k" ]; then
+ KEEP=1
+ shift
+fi
+if [ $# -lt 2 ]; then
+ echo "usage: $NAME [-2] [-k] old.dll new.dll"
+ exit 1
+fi
+
+if [ ! -r $1 ]; then
+ echo "Error: $1 does not exist or is not readable"
+ exit 1
+fi
+
+if [ ! -r $2 ]; then
+ echo "Error: $2 does not exist or is not readable"
+ exit 1
+fi
+
+ASM_NAME=$(basename $1)
+API_OLD=$(tempfile --suffix=_$ASM_NAME.api-old)
+API_NEW=$(tempfile --suffix=_$ASM_NAME.api-new)
+API_DIFF=$(tempfile --suffix=_$ASM_NAME.api-diff)
+
+/usr/bin/cli ${MONO_API_INFO} "$1" > ${API_OLD}
+/usr/bin/cli ${MONO_API_INFO} "$2" > ${API_NEW}
+/usr/bin/cli ${MONO_API_DIFF} ${API_OLD} ${API_NEW} > ${API_DIFF}
+
+version_changed=0
grep -q 'Assembly version not equal: ' ${API_DIFF}
-version_changed=$?
+if [ $? = 0 ]; then
+ version_changed=1
+fi
+echo $version_changed
name=$(head -n3 ${API_DIFF} | tail -n1 | sed 's;\ ;\n;g' | grep ^name | cut -d\= -f2 | sed 's;\";;g')
missing_total=$(head -n3 ${API_DIFF} | tail -n1 | sed 's;\ ;\n;g' | grep ^missing_total | cut -d\= -f2 | sed 's;\";;g')
@@ -69,10 +90,15 @@
fi
fi
-if [ $version_changed ]; then
+if [ $version_changed = 1 ]; then
echo
echo "The assembly versions do NOT MATCH!"
echo "If they are API compatible you MUST generate and install a GAC policy file!"
fi
-rm -f ${API_OLD} ${API_NEW} ${API_DIFF}
+rm -f ${API_OLD} ${API_NEW}
+if [ $KEEP = 1 ]; then
+ echo "API diff file: ${API_DIFF}"
+else
+ rm -f ${API_OLD} ${API_NEW}
+fi
More information about the Pkg-mono-svn-commits
mailing list