diff options
author | Evan Chan <ev@ooyala.com> | 2013-06-24 23:55:09 -0700 |
---|---|---|
committer | Evan Chan <ev@ooyala.com> | 2013-06-24 23:55:09 -0700 |
commit | cee05a174897af294f52cbda551da09cb869557e (patch) | |
tree | efc194f1dfb8b1527e8cf32e95e2d9c1193eee7a /spark-shell | |
parent | 81df20e5b44407c8c321471be2faee4bf6853fd6 (diff) | |
download | spark-cee05a174897af294f52cbda551da09cb869557e.tar.gz spark-cee05a174897af294f52cbda551da09cb869557e.tar.bz2 spark-cee05a174897af294f52cbda551da09cb869557e.zip |
Copy restore-TTY functions from Scala script so binary distros don't need 'scala' installed
Diffstat (limited to 'spark-shell')
-rwxr-xr-x | spark-shell | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/spark-shell b/spark-shell index 574ae2104d..afbb7a9a8e 100755 --- a/spark-shell +++ b/spark-shell @@ -1,4 +1,37 @@ -#!/bin/sh +#!/bin/bash --posix FWDIR="`dirname $0`" -export SPARK_LAUNCH_WITH_SCALA=1 -exec $FWDIR/run spark.repl.Main "$@" + +# Copy restore-TTY-on-exit functions from Scala script so spark-shell exits properly even in +# binary distribution of Spark where Scala is not installed +exit_status=127 +saved_stty="" + +# restore stty settings (echo in particular) +function restoreSttySettings() { + stty $saved_stty + saved_stty="" +} + +function onExit() { + if [[ "$saved_stty" != "" ]]; then + restoreSttySettings + fi + exit $exit_status +} + +# to reenable echo if we are interrupted before completing. +trap onExit INT + +# save terminal settings +saved_stty=$(stty -g 2>/dev/null) +# clear on error so we don't later try to restore them +if [[ ! $? ]]; then + saved_stty="" +fi + +$FWDIR/run spark.repl.Main "$@" + +# record the exit status lest it be overwritten: +# then reenable echo and propagate the code. +exit_status=$? +onExit |