#!/bin/bash


malletdir=`dirname $0`
#echo $malletdir
malletdir=`dirname $malletdir`
#echo $malletdir

cp=$malletdir/classes:$malletdir/class:$malletdir/lib/mallet-deps.jar:$CLASSPATH
#echo $cp

MEMORY=1g

JAVA_COMMAND="java -Xmx$MEMORY -ea -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -classpath $cp"

CMD=$1
shift

help()
{
cat <<EOF
Mallet 2.0 commands: 

  import-dir        load the contents of a directory into mallet instances (one per file)
  import-file       load a single file into mallet instances (one per line)
  import-svmlight   load SVMLight format data files into Mallet instances
  train-classifier  train a classifier from Mallet data files
  classify-dir      classify data from a single file with a saved classifier
  classify-file     classify the contents of a directory with a saved classifier
  train-topics      train a topic model from Mallet data files
  infer-topics      use a trained topic model to infer topics for new documents
  evaluate-topics   estimate the probability of new documents under a trained model
  hlda              train a topic model using Hierarchical LDA
  prune             remove features based on frequency or information gain
  split             divide data into testing, training, and validation portions

Include --help with any option for more information
EOF
}

CLASS=

case $CMD in
	import-dir) CLASS=cc.mallet.classify.tui.Text2Vectors;;
	import-file) CLASS=cc.mallet.classify.tui.Csv2Vectors;;
        import-svmlight) CLASS=cc.mallet.classify.tui.SvmLight2Vectors;;
	train-classifier) CLASS=cc.mallet.classify.tui.Vectors2Classify;;
        classify-dir) CLASS=cc.mallet.classify.tui.Text2Classify;;
        classify-file) CLASS=cc.mallet.classify.tui.Csv2Classify;;
	train-topics) CLASS=cc.mallet.topics.tui.Vectors2Topics;;
	infer-topics) CLASS=cc.mallet.topics.tui.InferTopics;;
	evaluate-topics) CLASS=cc.mallet.topics.tui.EvaluateTopics;;
	hlda) CLASS=cc.mallet.topics.tui.HierarchicalLDATUI;;
	prune) CLASS=cc.mallet.classify.tui.Vectors2Vectors;;
	split) CLASS=cc.mallet.classify.tui.Vectors2Vectors;;
	bulk-load) CLASS=cc.mallet.util.BulkLoader;;
	run) CLASS=$1; shift;;
	*) echo "Unrecognized command: $CMD"; help; exit 1;;
esac

$JAVA_COMMAND $CLASS $*
