summaryrefslogblamecommitdiff
path: root/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
blob: d192198bad783ce8f29d579eb78d215e0e79c110 (plain) (tree)





























                                                                              

                                   
 











































                                                                             







                                                                            
                                                         
                                                


                      
                                       
                                                      



              
                                                                                                                                                                                  
#!/bin/bash

##############################################################################
# @name@ @version@
##############################################################################
# @copyright@
# This is free software; see the distribution for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
##############################################################################

cygwin=false;
darwin=false;
case "`uname`" in
    CYGWIN*) cygwin=true ;;
    Darwin*) darwin=true ;;
esac

SOURCE=$0;
SCRIPT=`basename "$SOURCE"`;
while [ -h "$SOURCE" ]; do
    SCRIPT=`basename "$SOURCE"`;
    LOOKUP=`ls -ld "$SOURCE"`;
    TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`;
    if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
        SOURCE=${TARGET:-.};
    else
        SOURCE=`dirname "$SOURCE"`/${TARGET:-.};
    fi;
done;
SCALA_HOME=`dirname "$SOURCE"`/..;
SCALA_HOME=`cd "$SCALA_HOME"; pwd`;

## buraq: previous version of this script computed the MYCLASSPATH and
##        then appended it to the bootclasspath. Unfortunately, this
##        won't work for library code that uses reflection to obtain
##        a class living on the classpath. For this reason, we have
##        to merge everything in the -cp classpath. This requires
##        intercepting the user's -cp, if any, or the user's $CLASSPATH, 
##        if set, appending our libs to it and passing the whole thing by -cp

MYCLASSPATH=@classpath@
if [ "$MYCLASSPATH" == "" ] ; then
    for jar in `ls $SCALA_HOME/lib/*.jar` ; do
        MYCLASSPATH="$MYCLASSPATH:$jar"
    done
    MYCLASSPATH=${MYCLASSPATH:1}
fi

QQ_USERCLASSPATH="."
QQ_USERARGS=""
QQ_NEXT=0
for i in $@@ ; do
    if [ $QQ_NEXT -eq 1 ] ; then
        QQ_USERCLASSPATH=$i
        QQ_NEXT=0
    else
        if [[ $i = "-cp" || $i = "-classpath" ]] ; then
            QQ_NEXT=1
        else
            QQ_USERARGS="$QQ_USERARGS $i"
            QQ_NEXT=0
        fi
    fi
done

## Lex suggested the user classpath comes before
## the Scala libraries, since it gets preferred.

if [ "$QQ_USERCLASSPATH" != "." ] ; then
    MYCLASSPATH="$QQ_USERCLASSPATH:$MYCLASSPATH"
else
    if [ "$CLASSPATH" != "" ] ; then
        MYCLASSPATH="$CLASSPATH:$MYCLASSPATH"
    else
        MYCLASSPATH=".:$MYCLASSPATH"
    fi
fi

if $cygwin; then
    if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
        format=mixed
    else
        format=windows
    fi
    MYCLASSPATH=`cygpath --path --$format "$MYCLASSPATH"`
    SCALA_HOME=`cygpath --$format "$SCALA_HOME"`
fi

for flag in "$@@" ; do
    if [ "$flag" == '-version' ] ; then
        echo "@name@ version @version@ -- @copyright@"
        exit 0
    fi
done

${JAVACMD:=java} @javaflags@ -Dscala.home="$SCALA_HOME" -Dscala.tool.name="@name@" -Dscala.tool.version="@version@" @properties@ -cp $MYCLASSPATH @class@ @toolflags@ $QQ_USERARGS