#!/bin/bash
extension="${LIBEXT:-.dylib}"
if [ "`uname -s`" == "Linux" ]; then
   extension="${LIBEXT:-.so}"
fi

if [ "x$2" == "x" ]; then
   echo usage is: mono-package-runtime MONO_INSTALL_PREFIX LABEL
   echo The file will be created in the current directory
   exit 1
fi

prefix=$1
output=$2
if [ ! -d "$prefix" ]; then
   echo the specified path is not a directory: $prefix
   exit 1
fi

if [ -e "$output.zip" ]; then
   echo The output file already exists, refusing to overwrite: $output.zip
   exit 1
fi

if [ ! -e "$prefix/bin/mono" ]; then
   echo The $prefix does not contains a bin/mono
   exit 1
fi

if [ ! -d "$prefix/lib/mono/4.5" ]; then
   echo The $prefix does not contains a lib/mono/4.5
   exit 1
fi

o=`pwd`/$output

cd $prefix
(zip -u $o.zip bin/mono lib/mono/4.5/mscorlib.dll lib/mono/4.5/System*dll lib/mono/4.5/Mono.CSharp.dll lib/mono/4.5/Microsoft*dll lib/mono/4.5/FSharp*.dll lib/mono/4.5/I18N*dll lib/mono/4.5/Accessibility.dll lib/mono/4.5/RabbitMQ.Client.dll lib/mono/4.5/ICSharpCode.SharpZipLib.dll lib/mono/4.5/CustomMarshalers.dll etc/mono/4.5/machine.config etc/mono/4.5/web.config lib/mono/4.5/Mono.Cairo.dll lib/mono/4.5/Mono.Data.Sqlite.dll lib/mono/4.5/Mono.Posix.dll lib/mono/4.5/Mono.Security.*dll lib/mono/4.5/Mono.Simd.dll lib/mono/4.5/Mono.WebBrowser.dll lib/mono/4.5/Novell.Directory.Ldap.dll lib/libMonoSupportW$extension lib/libMonoPosixHelper$extension lib/libmono-btls-shared$extension lib/libmono-native$extension lib/libmono-native-compat$extension)
echo Created file $o.zip
tmpdir=`mktemp -d`
mkdir -p $tmpdir/etc/mono
sed 's#\$mono_libdir/##' etc/mono/config > $tmpdir/etc/mono/config
cd $tmpdir
zip -u $o.zip etc/mono/config
rm -r $tmpdir
