blob: 008036c85811b160dfab52fe2b8b279e49bf9a83 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#!/bin/sh
##############################################################################
# Scala runtime @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
# Prints out version if the "-version" flag is passed
for flag in "$@@" ; do
#TODO: take version only if it is before the tool class name
if [ "$flag" = '-version' ] ; then
echo "Scala runtime version @version@ -- @copyright@"
${JAVACMD:=java} -version
exit 0
fi
done
# Finding the root folder for this Scala distribution
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`;
if $cygwin; then
SCALA_HOME=`cygpath --windows --short-name "$SCALA_HOME"`
SCALA_HOME=`cygpath --unix "$SCALA_HOME"`
fi
# Will contain (at the end of the script) all arguments that weren't explicitly handled
USER_ARGS=""
# Constructing the user class-path in three overriding steps
# Step 1: Class-path set to default value "."
USER_CLASSPATH="."
# Step 2: Class-path overridden to value of "CLASSPATH" environment variable
if [ -n "$CLASSPATH" ] ; then
USER_CLASSPATH="$CLASSPATH"
fi
# Step 3: Class-path overridden to value of "-classpath" script parameter
IS_CP_ARGUMENT=0
for arg in "$@@" ; do
if [ "$IS_CP_ARGUMENT" -eq 1 ] ; then
USER_CLASSPATH=$arg
IS_CP_ARGUMENT=0
else
if [ "$arg" = "-cp" ] || [ "$arg" = "-classpath" ] ; then
IS_CP_ARGUMENT=1
else
USER_ARGS="$USER_ARGS $arg"
IS_CP_ARGUMENT=0
fi
fi
done
# Constructing the extension classpath
EXTENSION_CLASSPATH="@extclasspath@"
if [ -z "$EXTENSION_CLASSPATH" ] ; then
for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
if [ -z "$EXTENSION_CLASSPATH" ] ; then
EXTENSION_CLASSPATH="$ext"
else
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
fi
done
fi
# Setting the boot class-path to be the standard library (either as a JAR or a folder)
BOOT_CLASSPATH="@bootclasspath@"
if [ -z "$BOOT_CLASSPATH" ] ; then
if [ -f "$SCALA_HOME/lib/scala-library.jar" ] ; then
BOOT_CLASSPATH="$SCALA_HOME/lib/scala-library.jar"
elif [ -d "$SCALA_HOME/lib/library" ] ; then
BOOT_CLASSPATH="$SCALA_HOME/lib/library"
fi
fi
# The merge of all non-boot classpaths.
MERGED_CLASSPATH="$USER_CLASSPATH:$EXTENSION_CLASSPATH"
if $cygwin; then
if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
format=mixed
else
format=windows
fi
SCALA_HOME=`cygpath --$format "$SCALA_HOME"`
MERGED_CLASSPATH=`cygpath --path --$format "$MERGED_CLASSPATH"`
BOOT_CLASSPATH=`cygpath --path --$format "$BOOT_CLASSPATH"`
fi
${JAVACMD:=java} @javaflags@ -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$MERGED_CLASSPATH" -Dscala.home="$SCALA_HOME" @properties@ $USER_ARGS
|