#!/bin/sh

# Copyright (C) 2004 Adam Megacz, all rights reserved
# I do consulting; see http://www.megacz.com/consulting.html
#
# Worldwide, royalty-free license granted to Caucho Technology, Inc
# to modify and redistribute as long as this notice is not removed
# or altered.

if [ x$1 = "x" ]; then
  echo "usage:"
  echo "   $0 <url-of-resin.tar.gz>"
  exit -1;
fi

mkdir -p /tmp/resin-debian
rm -rf /tmp/resin-debian/*
cd /tmp/resin-debian
curl $1 | tar -xvzf -
unalias ls
RESIN=`ls`
VERSION=`echo $RESIN | sed s_resin-__`

mkdir -p resin/usr/lib/resin
cd $RESIN

./configure \
    --prefix=/usr/lib/resin \
    --with-perl=/usr/bin/perl \
    --enable-jni \
    --with-java-home=/usr/lib/j2se/1.5 \
    --with-openssl=/usr
make
make install PREFIX=`pwd`/../resin/usr/lib/resin/
cd /tmp/resin-debian
mkdir -p resin/usr/share/java
cd resin/usr/share/java;
ln -sf /usr/lib/resin/lib/jsdk-24.jar servlet-2.3.jar
ln -sf /usr/lib/resin/lib/jsdk-24.jar servlet-2.4.jar
cd ../../../..
mkdir -p resin/etc/
mv resin/usr/lib/resin/conf resin/etc/resin
cd resin/usr/lib/resin; ln -s ../../../etc/resin conf; cd /tmp/resin-debian
mkdir -p resin/DEBIAN

cat > resin/DEBIAN/control <<EOF
Package: resin
Version: $VERSION
Architecture: i386
Maintainer: Adam Megacz <adam@megacz.com>
Priority: optional
Depends: j2sdk (>= 1.5), lib-dom-java, libcrimson-java, libgetenv-java, libgetopt-java, libgnu-regexp-java, libreadline-java, libregexp-java, libxerces-java, libbcel-java, libcommons-collections-java, libcommons-collections3-java, libcommons-httpclient-java, libcommons-fileupload-java, libcommons-logging-java, liblog4j-java, liblogkit-java, libxalan-java, libxalan2-java, libxerces2-java, libcommons-dbcp-java
Provides: httpd, apache, libservlet2.4-java, libservlet2.3-java
Conflicts:
Description: resin http server and servlet container
EOF

cat > resin/DEBIAN/conffiles <<EOF
/etc/resin/app-default.xml
/etc/resin/resin.conf
/etc/default/resin
EOF

cat > resin/DEBIAN/postinst <<EOF
#!/bin/sh -e
/usr/sbin/update-rc.d resin defaults
/etc/init.d/resin start
exit 0
EOF

cat > resin/DEBIAN/prerm <<EOF
#!/bin/sh -e
/etc/init.d/resin stop
/usr/sbin/update-rc.d -f resin remove
exit 0
EOF

mkdir -p resin/etc/init.d/
cat > resin/etc/init.d/resin <<EOF
#!/bin/sh
source /etc/default/resin
export CLASSPATH=
/usr/lib/resin/bin/httpd.sh \$RESIN_ARGS \$@
EOF
chmod +x resin/etc/init.d/resin

mkdir -p resin/etc/default/
cat > resin/etc/default/resin <<EOF
# arguments passed to httpd.sh:
ulimit -s 2048
export JAVA_HOME=/usr/lib/j2se/1.4/
RESIN_ARGS="-J-ms200m -J-mx512m -stdout /var/log/resin.log -stderr /var/log/resin.log"
EOF

chmod -R 0775 resin/DEBIAN
dpkg --build resin
mv resin.deb resin_${VERSION}_i386.deb
