You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
48 lines
1.1 KiB
#!/usr/bin/env bash |
|
set -e |
|
set -u |
|
set -o pipefail |
|
|
|
JDWP=false |
|
JDWP_PORT=8000 |
|
|
|
while getopts djp: OPTION "$@"; do |
|
case $OPTION in |
|
d) |
|
set -x |
|
;; |
|
j) |
|
JDWP=true |
|
;; |
|
p) |
|
JDWP_PORT=$OPTARG |
|
;; |
|
esac |
|
done |
|
|
|
EXTRA_JAVA_ARGS=() |
|
if $JDWP; then |
|
EXTRA_JAVA_ARGS+=("-Xdebug") |
|
EXTRA_JAVA_ARGS+=("-Xrunjdwp:server=y,transport=dt_socket,address=${JDWP_PORT},suspend=n") |
|
fi |
|
|
|
PROJECT_ROOT=$(dirname "${BASH_SOURCE[0]}") |
|
cd "${PROJECT_ROOT}" |
|
|
|
echo "Compiling and computing classpath (May take a while)" |
|
# Sadly even with the --quiet option Gradle (or some component of) |
|
# will print the number of warnings/errors to stdout if there are |
|
# any. So the result could look like |
|
# 52 warnings\n1 warning\n12 warnings\n |
|
# /smack/smack-repl/build/classes/main:/smack/smack-repl/build/ |
|
# resources/main:/smack/smack-tcp/build/libs/smack-tcp-4.2.0-alpha4-SNAPSHOT.jar |
|
# So perform a "tail -n1" on the output of gradle |
|
GRADLE_CLASSPATH="$(gradle :smack-repl:printClasspath --quiet |\ |
|
tail -n1)" |
|
echo "Finished, starting REPL" |
|
|
|
java "${EXTRA_JAVA_ARGS[@]}" \ |
|
-Dscala.usejavacp=true \ |
|
-classpath "${GRADLE_CLASSPATH}" \ |
|
ammonite.Main \ |
|
--predef "smack-repl/scala.repl"
|
|
|