#!/bin/sh
#
# Copyright (c) 2003-2005 Pixware. 
#
# This file is part of the XMLmind XML Editor project.
# For conditions of distribution and use, see the accompanying legal.txt file.

appName="XMLEditor"
creator="XMXE"

if [ ! -f MacApplicationListener.java ]; then
    echo "$0: This script must be run from the directory containing MacApplicationListener.java."
    exit 2
fi

if [ ! -f ../xxe_app.jar ]; then
    echo "$0: Please build xxe_app.jar before running this script."
    exit 3
fi

type javac > /dev/null
if [ $? -ne 0 ]; then
    echo "$0: javac is not in PATH. Cannot create application bundle."
    exit 4
fi

###stub=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub

# MacOSX 10.2, Java 1.4.1 stub. Tested on MacOSX 10.3 with Java 1.4.1, 1.4.2.
stub=./JavaApplicationStub

if [ ! -f "$stub" ]; then
    echo "$0: Do not find $stub. Cannot create application bundle."
    exit 5
fi

bbit=/Developer/Tools/SetFile
if [ ! -f "$bbit" ]; then
    echo "$0: Do not find $bbit. Cannot create application bundle."
    exit 6
fi

jars=../xxe_app.jar:\
../xxe.jar:\
../xp.jar:\
../resolver.jar:\
../relaxng.jar:\
../xsc.jar:\
../jh.jar:\
../ftp.jar:\
../http.jar:\
../saxon.jar

echo "$0: Unzipping ../xxe_app.jar..."
jar -xf ../xxe_app.jar
cp META-INF/MANIFEST.MF ./manifest.txt
rm -rf META-INF *.class

echo "$0: Compiling MacApplicationListener.java..."
javac -classpath .:$jars MacApplicationListener.java

echo "$0: Adding MacApplicationListener.class to ./xxe_app.jar..."
jar -cmf manifest.txt ./xxe_app.jar \
    gui \
    *.class \
    com/xmlmind/xmleditapp
rm -rf manifest.txt *.class com

app="../../$appName.app"
echo "$0: Creating $app (next to bin/)..."
rm -rf "$app"
mkdir "$app"
mkdir "$app/Contents"
mkdir "$app/Contents/MacOS"
mkdir "$app/Contents/Resources"
mkdir "$app/Contents/Resources/Java"

cp Info.plist "$app/Contents"
echo "APPL$creator" > "$app/Contents/PkgInfo"

cp "$stub" "$app/Contents/MacOS"

cp xxe.icns "$app/Contents/Resources/xxe.icns"
cp xml.icns "$app/Contents/Resources/xml.icns"

mkdir "$app/Contents/Resources/English.lproj"
mkdir "$app/Contents/Resources/French.lproj"
mkdir "$app/Contents/Resources/German.lproj"
mkdir "$app/Contents/Resources/Czech.lproj"

echo "$0: Copying all bin/ files to $app/Contents/Resources/Java..."
cp -r ../* "$app/Contents/Resources/Java"
mv ./xxe_app.jar "$app/Contents/Resources/Java"
rm -rf "$app/Contents/Resources/Java/mac"

echo "$0: Copying addon/ to $app/Contents/Resources/..."
cp -r ../../addon "$app/Contents/Resources"

"$bbit" -a B "$app"

echo "$0: Application bundle has been created in $app."
echo "$0: You now can remove bin/ and addon/ because they have been copied"
echo "$0: to $app/Contents/Resources/."
echo "$0: Now create disk image xxe-xxx.dmg (using application 'Disk Copy')"
echo "$0: from xxe-xxx/ (containing just doc/ demo/ $appName.app/)."
echo "$0: Then run 'hdiutil internet-enable -yes xxe-xxx.dmg'."
exit 0


