blob: f1da6c8eab263e6f33829e7ffbde2a84734b214e (
plain) (
tree)
|
|
#!/bin/bash
# Try to autodetect real location of the script
DOTTY_ROOT="$(readlink "$0")" # relative, symbolic links resolved
if [[ "$DOTTY_ROOT" == "" ]]; then
DOTTY_ROOT="$0"
fi
DOTTY_ROOT="$(dirname "$DOTTY_ROOT")"
DOTTY_ROOT="$( cd "$DOTTY_ROOT" >& /dev/null && pwd )/.." # absolute
SCALA_VERSION=$(grep "scalaVersion in" "$DOTTY_ROOT/project/Build.scala"|sed -n 's/.*\"\(.*\)\".*/\1/'p)
function find_jar {
# Usage:
# find_jar path/to/location file.jar
local artifact="$1/$2"
if [ ! -f "$artifact" ]; then
artifact=$(find "$HOME/.coursier/cache" -iname "$2")
fi
echo "$artifact"
}
# Autodetecting the scala-library location, in case it wasn't provided by an environment variable
if [ "$SCALA_LIBRARY_JAR" == "" ]; then
SCALA_LIBRARY_JAR=$(find_jar "$HOME/.ivy2/cache/org.scala-lang/scala-library/jars" "scala-library-$SCALA_VERSION.jar")
fi
# CLASS_PATH is derived from the DOTTY_ROOT and SCALA_LIBRARY_JAR
CLASS_PATH="-Xbootclasspath/a:.:$DOTTY_ROOT/target/scala-2.11/classes/:.:$SCALA_LIBRARY_JAR"
function runMain {
local jbin=$(which "java")
if [ ! -z "$JAVA_BIN" ]; then
jbin=$JAVA_BIN
fi
if [ "$jbin" == "" ]; then
echo "java bin not detected - please specify with \$JAVA_BIN or install java to a default location"
else
eval "$jbin $CLASS_PATH $@"
fi
}
if [ -z "$1" ]; then
echo "Starting dotty REPL..."
eval "$DOTTY_ROOT/bin/dotc -repl"
else
runMain "$@"
fi
|