#!/bin/bash
# freenet_server - wrapper for the Freenet server (jar version)

echo "Starting Freenet server"

# set up trap to unregister node on exit
function unregister() {
    echo -n "Unregistering server from inform.php... "
    result=`(echo "GET /inform.php?remove=1 HTTP/1.1";			\
	echo "Host: freenet.sourceforge.net"; 				\
	echo ""; sleep 5)						\
	| telnet freenet.sourceforge.net 80 2>&1			\
	| grep "^HTTP"`
    echo "$result"

    if echo "$result" | grep -q "^HTTP/.* 200"
    then
	echo "done"
    else
	echo "failed"
	echo ""
	echo "Please unregister yourself manually by visiting this address in a web browser:"
	echo "http://freenet.sourceforge.net/inform.php?remove=1"
    fi
}


# where are we?
MYFILE="$0"
while test -L "$MYFILE"; do
    target=`expr "\`ls -l $MYFILE\`" : '.*-> \(.*\)$'`
    if echo "$target" | grep '^/' > /dev/null; then
	MYFILE="$target"                     # absolute path
    else
	MYFILE=`dirname $MYFILE`/$target     # relative path
    fi
done
MYDIR=`dirname $MYFILE`
JARLOC="$MYDIR/freenet.jar"


# don't trap if we just want usage
if test "$1" = "-help" -o "$1" = "-version"; then
    export CLASSPATH="${JARLOC}:${CLASSPATH}"
    java Freenet.node.Node $1
    exit 0
else
    trap unregister 0
fi


# start node
export CLASSPATH="${JARLOC}:${CLASSPATH}"
java Freenet.node.Node $*
