#! /bin/bash

[ -z "$R" ] && R=R

export R_INSTALL_VANILLA=1
export R_COMPILE_PKGS=1

global_lib=0
from_cran=0
keep_going=0

usage()
{
    echo "tractor_Rinstall (program v3.2.0)"
    echo "TractoR-specific wrapper for installing R packages"
    echo
    echo "Usage: tractor_Rinstall [-gck] pkg_path [pkg_path ...]"
    echo
}

set -- `getopt "hgck" "$@"` || {
    usage 1>&2
    exit
}

while [ $# -gt 0 ]
    do
    case "$1" in
        -h) usage; exit 0 ;;
        -g) global_lib=1 ;;
        -c) from_cran=1 ;;
        -k) keep_going=1 ;;
        --) shift; break ;;
    esac
    shift
done

[ $# -lt 1 ] && {
    usage 1>&2
    exit
}

while [ $# -gt 0 ]; do
    name=`basename "$1"`
    echo -n "Installing R package \"${name%_*}\"... "
    
    # Use tractor.base to check if we're in a TractoR directory
    if [ $from_cran -eq 1 ]; then
        if [ $global_lib -eq 1 ]; then
            "$R" -e "install.packages('$name', repos='https://cloud.r-project.org')" >>install.log 2>&1
        elif [ -d tractor.base ]; then
            [ ! -d lib/R ] && mkdir -p lib/R
            "$R" -e "install.packages('$name', 'lib/R', repos='https://cloud.r-project.org')" >>install.log 2>&1
        else
            false
        fi
    else
        if [ $global_lib -eq 1 ]; then
            "$R" CMD INSTALL --install-tests --clean "${1}" >>install.log 2>&1
        elif [ -d tractor.base ]; then
            [ ! -d lib/R ] && mkdir -p lib/R
            "$R" CMD INSTALL --library=lib/R --install-tests --clean "${1}" >>install.log 2>&1
        else
            false
        fi
    fi
    
    if [ $? -eq 0 ]; then
        echo "OK"
    else
        echo "FAIL"
        if [ $keep_going -eq 0 ]; then
            cat install.log
            exit 1
        fi
    fi
    shift
done
