diff --git a/compiler/src/dotty/tools/scripting/Main.scala b/compiler/src/dotty/tools/scripting/Main.scala index cf1e76994441..ded809b9f675 100644 --- a/compiler/src/dotty/tools/scripting/Main.scala +++ b/compiler/src/dotty/tools/scripting/Main.scala @@ -52,7 +52,7 @@ object Main: val javaClasspath = sys.props("java.class.path") val runtimeClasspath = s"${classpath}$pathsep$javaClasspath" - val jarTargetDir: Path = Option(scriptFile.toPath.getParent) match { + val jarTargetDir: Path = Option(scriptFile.toPath.toAbsolutePath.getParent) match { case None => sys.error(s"no parent directory for script file [$scriptFile]") case Some(parent) => parent } diff --git a/dist/bin/common b/dist/bin/common index d6da956207da..da5ae4aeff66 100755 --- a/dist/bin/common +++ b/dist/bin/common @@ -24,12 +24,9 @@ function onExit() { } # to reenable echo if we are interrupted before completing. -trap onExit INT TERM +trap onExit INT TERM EXIT -cygwin=false -mingw=false -msys=false -darwin=false +unset cygwin mingw msys darwin conemu case "`uname`" in CYGWIN*) cygwin=true ;; @@ -51,7 +48,9 @@ case "`uname`" in esac unset CYGPATHCMD -if [[ ($cygwin||$mingw||$msys) ]]; then +if [[ $cygwin || $mingw || $msys ]]; then + # ConEmu terminal is incompatible with jna-5.*.jar + [[ ($CONEMUANSI || $ConEmuANSI) ]] && conemu=true # cygpath is used by various windows shells: cygwin, git-sdk, gitbash, msys, etc. CYGPATHCMD=`which cygpath 2>/dev/null` case "$TERM" in @@ -113,7 +112,7 @@ if [ -n "$CYGPATHCMD" ]; then JAVA_HOME=`"$CYGPATHCMD" -am "$JAVA_HOME"` CLASSPATH_SUFFIX=";" PSEP=";" -elif ($mingw || $msys); then +elif [[ $mingw || $msys ]]; then # For Mingw / Msys, convert paths from UNIX format before anything is touched [ -n "$PROG_HOME" ] && PROG_HOME="`(cd "$PROG_HOME"; pwd -W | sed 's|/|\\\\|g')`" @@ -131,7 +130,7 @@ find_lib () { local lib=$(find $PROG_HOME/lib/ -name "$1") if [ -n "$CYGPATHCMD" ]; then $CYGPATHCMD -am $lib - elif ($mingw || $msys); then + elif [[ $mingw || $msys ]]; then echo $lib | sed 's|/|\\\\|g' else echo $lib @@ -150,7 +149,8 @@ SBT_INTF=$(find_lib "*compiler-interface*") JLINE_READER=$(find_lib "*jline-reader-3*") JLINE_TERMINAL=$(find_lib "*jline-terminal-3*") JLINE_TERMINAL_JNA=$(find_lib "*jline-terminal-jna-3*") -[[ ($mingw||$msys) ]] || JNA=$(find_lib "*jna-5*") +[[ $conemu ]] || JNA=$(find_lib "*jna-5*") # debug + DEBUG_STR=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 diff --git a/dist/bin/scalac b/dist/bin/scalac index f81c20853bd2..74bfc4a603fe 100755 --- a/dist/bin/scalac +++ b/dist/bin/scalac @@ -120,7 +120,7 @@ if [ "$PROG_NAME" == "$ScriptingMain" ]; then scripting_string="-script $target_script ${scripting_args[@]}" fi -eval exec "\"$JAVACMD\"" \ +eval "\"$JAVACMD\"" \ ${JAVA_OPTS:-$default_java_opts} \ "${DEBUG-}" \ "${java_args[@]}" \ @@ -130,4 +130,5 @@ eval exec "\"$JAVACMD\"" \ "${scala_args[@]}" \ "${residual_args[@]}" \ "${scripting_string-}" -exit $? +scala_exit_status=$? +onExit diff --git a/dist/bin/scaladoc b/dist/bin/scaladoc index b536dbf99e4e..304da8f5045d 100755 --- a/dist/bin/scaladoc +++ b/dist/bin/scaladoc @@ -125,7 +125,7 @@ done classpathArgs -eval exec "\"$JAVACMD\"" \ +eval "\"$JAVACMD\"" \ ${JAVA_OPTS:-$default_java_opts} \ "$DEBUG" \ "${java_args[@]}" \ @@ -134,4 +134,5 @@ eval exec "\"$JAVACMD\"" \ "${scala_args[@]}" \ "${residual_args[@]}" \ "$scripting_string" -exit $? +scala_exit_status=$? +onExit