#!/bin/bash
#
# java_binfmt	Allow to execute Java applications and applets just like any other program
#
# chkconfig: 2345 99 10
# description: Allow to execute Java applications and applets just like any other program

RETVAL=0

function start () {
    /sbin/modprobe binfmt_misc &>/dev/null
    RETVAL=$?
    echo ':Java:M::\xca\xfe\xba\xbe::/usr/bin/javawrapper:' >/proc/sys/fs/binfmt_misc/register
    echo ':Applet:E::html::/usr/bin/appletviewer:' >/proc/sys/fs/binfmt_misc/register
    echo ':Jar:E::jar::/usr/bin/jarexec:' > /proc/sys/fs/binfmt_misc/register
    touch /var/lock/subsys/java_binfmt
    return $RETVAL
}

function stop () {
    echo "-1" >/proc/sys/fs/binfmt_misc/Java
    echo "-1" >/proc/sys/fs/binfmt_misc/Applet
    echo "-1" >/proc/sys/fs/binfmt_misc/Jar
    RETVAL=$?
    rm -f /var/lock/subsys/java_binfmt
    return $RETVAL
}

case "$1" in
    start)start;;
    stop)stop;;
    status)[[ -e /proc/sys/fs/binfmt_misc/Java ]] && echo Java Registration enabled || echo Java Registration disabled ;;
    restart);;
    reload);;
    *) echo "Usage: ${0##*/} {start|status|stop}"; exit 1;
esac

exit $RETVAL
