X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=scripts%2Fmono-find-provides.in;h=c9210060c26e83fd628c11705e0147b8d2c02913;hb=62cc262196951b67a13069444b889dc71758776c;hp=2766a452a9c88e5c2b67345a38c4ffb301e9d973;hpb=f89bbeb799d50c196c3993df35b5abe7fb17e99f;p=mono.git diff --git a/scripts/mono-find-provides.in b/scripts/mono-find-provides.in index 2766a452a9c..c9210060c26 100644 --- a/scripts/mono-find-provides.in +++ b/scripts/mono-find-provides.in @@ -1,2 +1,56 @@ -#!/bin/sh -exec @bindir@/@mono_interp@ @mono_one_instdir@/mono-find-provides.exe "$@" +#!/bin/bash +# +# mono-find-provides +# +# Authors: +# Ben Maurer (bmaurer@ximian.com) +# +# (C) 2005 Novell (http://www.novell.com) +# + +IFS=$'\n' +filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/')) +monolist=($(printf "%s\n" "${filelist[@]}" | egrep "\\.(exe|dll)\$")) + +# Only include files with /gac/ in path +# (Allows packages to contain private assemblies that don't conflict with other packages) +#monolist=($(printf "%s\n" "${monolist[@]}" | egrep "/gac/")) +# Disabled... see ChangeLog + +# Set the prefix, unless it is overriden (used when building mono rpms) +: ${prefix=@prefix@} + +libdir=$prefix/@reloc_libdir@ +bindir=$prefix/bin + +# Bail out if monodis or libmono is missing +if [ ! -x $bindir/monodis ] || [ ! -f $libdir/libmono-2.0.so.1 ] ; then + echo "monodis missing or unusable, exiting..." 1>&2 + exit 1 +fi + + +# set LD_LIBRARY_PATH to ensure that libmono is found +export LD_LIBRARY_PATH=$libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +# and set MONO_PATH to ensure that mscorlib.dll can be found +export MONO_PATH=$prefix/lib/mono/2.0 + +for i in "${monolist[@]}"; do + ($bindir/monodis --assembly $i | awk ' + BEGIN { LIBNAME=""; VERSION=""; } + /^Version:/ { VERSION=$2 } + /^Name:/ { LIBNAME=$2 } + END { + if (LIBNAME ~ /^policy/) { + cnt = split(LIBNAME, toks, ".") + VERSION=toks[2] "." toks[3] ".0.0" + LIBNAME="" + for (i=4; i<= cnt; i++) + LIBNAME = (LIBNAME toks[i] ".") + LIBNAME=substr(LIBNAME, 1, length(LIBNAME)-1) + } + if (VERSION && LIBNAME) + print "mono(" LIBNAME ") = " VERSION + } + ') 2>/dev/null +done