This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 89bc2930dcf21dae3091c287bc8a64fba6399cfe
Author: Stephen Mallette <[email protected]>
AuthorDate: Thu Jul 16 10:18:52 2026 -0400

    Restore terminal echo after process-docs.sh completes
    
    The console subprocesses put the shared tty into raw mode and don't always
    restore it, leaving the invoking shell unable to echo typed characters.
    
    Assisted-by: Claude Code:claude-opus-4-8
---
 bin/process-docs.sh | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/bin/process-docs.sh b/bin/process-docs.sh
index 0a47a5ac2d..b4cebbbf76 100755
--- a/bin/process-docs.sh
+++ b/bin/process-docs.sh
@@ -55,12 +55,25 @@ done
 GREMLIN_SERVER_PID=""
 GEPHI_MOCK_PID=""
 
+# The console subprocesses spawned by the docs extension drive JLine, which 
puts the shared
+# controlling terminal into raw mode (echo off) even though its own 
stdin/stdout are pipes. A
+# console that is killed rather than shut down cleanly never restores those 
settings, leaving
+# the invoking shell unable to echo typed characters. Snapshot the settings 
here and restore
+# them on exit.
+STTY_SAVED=""
+if [ -t 0 ]; then
+  STTY_SAVED=$(stty -g 2>/dev/null || true)
+fi
+
 cleanup() {
   set +e
   [ -n "${GREMLIN_SERVER_PID}" ] && kill "${GREMLIN_SERVER_PID}" 2>/dev/null
   [ -n "${GEPHI_MOCK_PID}" ] && kill "${GEPHI_MOCK_PID}" 2>/dev/null
+  [ -n "${STTY_SAVED}" ] && stty "${STTY_SAVED}" 2>/dev/null
 }
 trap cleanup EXIT
+trap 'cleanup; exit 130' INT
+trap 'cleanup; exit 143' TERM
 
 # ---------------------------------------------------------------------------
 # Dry-run mode

Reply via email to