aboutsummaryrefslogtreecommitdiff
path: root/build/sbt
diff options
context:
space:
mode:
Diffstat (limited to 'build/sbt')
-rwxr-xr-xbuild/sbt28
1 files changed, 28 insertions, 0 deletions
diff --git a/build/sbt b/build/sbt
index 28ebb64f71..cc3203d79b 100755
--- a/build/sbt
+++ b/build/sbt
@@ -125,4 +125,32 @@ loadConfigFile() {
[[ -f "$etc_sbt_opts_file" ]] && set -- $(loadConfigFile "$etc_sbt_opts_file") "$@"
[[ -f "$sbt_opts_file" ]] && set -- $(loadConfigFile "$sbt_opts_file") "$@"
+exit_status=127
+saved_stty=""
+
+restoreSttySettings() {
+ stty $saved_stty
+ saved_stty=""
+}
+
+onExit() {
+ if [[ "$saved_stty" != "" ]]; then
+ restoreSttySettings
+ fi
+ exit $exit_status
+}
+
+saveSttySettings() {
+ saved_stty=$(stty -g 2>/dev/null)
+ if [[ ! $? ]]; then
+ saved_stty=""
+ fi
+}
+
+saveSttySettings
+trap onExit INT
+
run "$@"
+
+exit_status=$?
+onExit