#!/bin/sh # cl-tty demo launcher # Sets raw terminal mode, runs the demo, restores terminal on exit. # This is needed because SBCL's --script mode + run-program combo # can't reliably set raw mode from inside the Lisp process. SAVED=$(stty -g 2>/dev/null) if [ -z "$SAVED" ]; then echo "ERROR: Not running in a real terminal." >&2 echo " Try: sbcl --script demo.lisp" >&2 exit 1 fi cleanup() { stty "$SAVED" 2>/dev/null } trap cleanup EXIT INT TERM stty raw -echo -isig -icanon min 1 time 0 2>/dev/null sbcl --script "$(dirname "$0")/demo.lisp"