#!/usr/local/bin/bash

#---------------------------------------------------------------------------------------------------
#
# 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/local/share/java/classes/snpeff
userdir=~/snpEff
JAVA_HOME=/usr/local/openjdk17

if [ -e "$JAVA_HOME/bin/java" ]
then
	java="$JAVA_HOME/bin/java"
fi

default_jvm_mem_opts="-Xms1g -Xmx8g"
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" != "" && ! "$pass_args" =~ "-c " ]]; then
    pass_args="$pass_args -c ${userdir}/snpEff.config"
fi

mkdir -p ~/snpEff
cp ${jardir}/*.config ~/snpEff
exec $java $jvm_mem_opts $jvm_prop_opts -jar ${jardir}/snpEff.jar $pass_args
