#!/bin/sh
# set the configuration variables below, before running the script
# get the solr nightly build download link from https://builds.apache.org/job/Solr-Artifacts-4.x/lastSuccessfulBuild/artifact/solr/package/


JETTY_URL="http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.0.5.v20130815.tar.gz&r=1"
JETTY_HOME="/opt/jetty"
JAVA='/usr/local/jdk1.7.0_09/bin/java'
JETTY_PORT=8085
JETTY_HOST=127.0.0.1
SOLR_URL="https://builds.apache.org/job/Solr-Artifacts-4.x/lastSuccessfulBuild/artifact/solr/package/solr-4.6-2013-09-29_16-22-46.tgz"
SOLR_HOME="/opt/solr"
JAVA_OPTIONS="-Xms16M -Xmx64M -XX:MaxPermSize=32M"


while getopts ":ir" opt; do
  case $opt in
    i)install=1;;
    r)remove=1;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
  esac
done

check_for_error() {
    if [ $? -ne 0 ]; then
        echo $1
        exit 2
    fi
}

if [ ! -z $install ]; then
    echo "installing solr in jetty..."
#download jetty
    cd /tmp
    mkdir jetty
    cd jetty
    wget "$JETTY_URL"
    mv download* jetty.tar.gz
    tar -xvf jetty.tar.gz
    mv jetty-distribution* jetty

# create jetty home if does not exist
    if [ ! -d $JETTY_HOME ]; then
        mkdir $JETTY_HOME
        check_for_error "unable to create jetty home. exiting.."
    fi
    cp -r jetty/* $JETTY_HOME

# add a jetty user if not exists
    grep -q ^jetty /etc/passwd
    if [ $? -ne 0 ]; then
        useradd jetty -U -s /bin/false
        check_for_error "unable to add jetty user. exiting.."
    fi
    chown -R jetty:jetty $JETTY_HOME

# create jetty configuration
    cp $JETTY_HOME/bin/jetty.sh /etc/init.d/jetty
    echo "JAVA=$JAVA" > /etc/default/jetty
    echo "JETTY_HOME=$JETTY_HOME" >> /etc/default/jetty
    echo "JETTY_HOST=$JETTY_HOST" >> /etc/default/jetty
    echo "JETTY_ARGS=jetty.port=$JETTY_PORT" >> /etc/default/jetty
    echo "JETTY_USER=jetty" >> /etc/default/jetty

# starting jetty service
    service jetty start
    service jetty check

# registering jetty service to start on boot automatically
    update-rc.d jetty defaults

# remove unsecure content demo apps
    cd $JETTY_HOME/webapps
    rm -rf test.d/ test.war test.xml async-rest.war
    cd $JETTY_HOME
    rm -rf webapps.demo

# installing solr
    mkdir /tmp/solr
    cd /tmp/solr
    wget $SOLR_URL
    tar -xvf solr-4.*
    cd solr-4.*

# create solr home if not exists
    if [ ! -d $SOLR_HOME ]; then
        mkdir $SOLR_HOME
        check_for_error "Unable to create solr home. exiting..."
    fi
    cp dist/solr-4.*war $JETTY_HOME/webapps/solr.war
    cp example/lib/ext/* $JETTY_HOME/lib/ext
    mkdir $SOLR_HOME/cores
    mkdir $SOLR_HOME/cores/production
    cp -r example/solr/* $SOLR_HOME/cores/production 
    cp -r dist $SOLR_HOME
    cp -r contrib $SOLR_HOME
    echo JAVA_OPTIONS='"-Dsolr.solr.home='$SOLR_HOME'/cores/production '$JAVA_OPTIONS'"' >> /etc/default/jetty
    chown -R jetty:jetty $SOLR_HOME

    service jetty restart

    #clean up tempfiles
    rm -rf /tmp/jetty
    rm -rf /tmp/solr

    echo "Status of jetty....."
    service jetty check
    exit 0

elif [ ! -z $remove ]; then
     echo "unistallting solr and jetty..."
     service jetty stop
     update-rc.d -f jetty remove
     cd $JETTY_HOME
     rm -rf *
     cd $SOLR_HOME
     rm -rf *
     exit 0
fi

cat << EOF
  Usage: 
        -i = install
        -r = uninstall
EOF