#!/bin/sh

#---------------------------------------------------------------------------------------------------
#
# Wrapper for HomeBrew-science project 
#
# snpEff executable shell script
# https://pcingola.github.io/SnpEff/
# Extracts memory and system property Java arguments from the list of provided arguments
# (ie -Xms 1g -Xmx 4g)
#
# Source https://gist.github.com/chapmanb/8732049
# Created by: Brad Chapman
#---------------------------------------------------------------------------------------------------

jardir=/usr/share/java

if dpkg --print-architecture | grep -q "64" ; then
  default_jvm_mem_opts="-Xms1g -Xmx8g"
else
  default_jvm_mem_opts="-Xms1g -Xmx3800m"
fi
jvm_mem_opts=""
jvm_prop_opts=""
pass_args=""
for arg in "$@"; do
    case $arg in
        '-D'*)
            jvm_prop_opts="$jvm_prop_opts $arg"
            ;;
         '-Xm'*)
            jvm_mem_opts="$jvm_mem_opts $arg"
            ;;
         *)
            pass_args="$pass_args $arg"
            ;;
    esac
done

if [ "$jvm_mem_opts" = "" ]; then
    jvm_mem_opts="$default_jvm_mem_opts"
fi
if [ "$pass_args" != "" ] && ! echo "$pass_args" | grep "\-c " ; then
    if [ ! -d ~/.snpEff ]; then
        mkdir ~/.snpEff
    fi

    if [ -d ~/.snpEff -a ! -e ~/.snpEff/snpEff.config ]; then
        cp /etc/snpeff/snpEff.config ~/.snpEff/snpEff.config
    fi

    pass_args="$pass_args -c $HOME/.snpEff/snpEff.config"
fi

exec java $jvm_mem_opts $jvm_prop_opts -jar ${jardir}/snpeff.jar $pass_args
exit
