#!/usr/bin/env bash # ############################################################################## # Copyright 2002-2011, LAMP/EPFL # Copyright 2011-2015, JetBrains # # 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; case "`uname`" in CYGWIN*) cygwin=true ;; esac # Based on findScalaHome() from scalac script findKotlinHome() { local source="${BASH_SOURCE[0]}" while [ -h "$source" ] ; do local linked="$(readlink "$source")" local dir="$(cd -P $(dirname "$source") && cd -P $(dirname "$linked") && pwd)" source="$dir/$(basename "$linked")" done (cd -P "$(dirname "$source")/.." && pwd) } KOTLIN_HOME="$(findKotlinHome)" if $cygwin; then # Remove spaces from KOTLIN_HOME on windows KOTLIN_HOME=`cygpath --windows --short-name "$KOTLIN_HOME"` fi [ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms32M" declare -a java_args declare -a kotlin_args while [ $# -gt 0 ]; do case "$1" in -D*) java_args=("${java_args[@]}" "$1") shift ;; -J*) java_args=("${java_args[@]}" "${1:2}") shift ;; *) kotlin_args=("${kotlin_args[@]}" "$1") shift ;; esac done if [ -z "$JAVACMD" -a -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then JAVACMD="$JAVA_HOME/bin/java" fi declare -a kotlin_app if [ -n "$KOTLIN_RUNNER" ]; then java_args=("${java_args[@]}" "-Dkotlin.home=${KOTLIN_HOME}") kotlin_app=("${KOTLIN_HOME}/lib/kotlin-runner.jar" "org.jetbrains.kotlin.runner.Main") else [ -n "$KOTLIN_COMPILER" ] || KOTLIN_COMPILER=org.jetbrains.kotlin.cli.jvm.K2JVMCompiler java_args=("${java_args[@]}" "-noverify") declare additional_classpath="" if [ -n "$KOTLIN_TOOL" ]; then additional_classpath=":${KOTLIN_HOME}/lib/${KOTLIN_TOOL}" fi kotlin_app=("${KOTLIN_HOME}/lib/kotlin-preloader.jar" "org.jetbrains.kotlin.preloading.Preloader" "-cp" "${KOTLIN_HOME}/lib/kotlin-compiler.jar${additional_classpath}" $KOTLIN_COMPILER) fi "${JAVACMD:=java}" $JAVA_OPTS "${java_args[@]}" -cp "${kotlin_app[@]}" "${kotlin_args[@]}"