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.
|
|
emulate -L zsh
zmodload zsh/curses
test_fd0() { true <&0 }
local restore=0 FD
# Reattach to terminal if [ ! -t 0 ]; then # Check if can reattach to terminal in any way if [[ ! -c /dev/tty && ! -t 2 ]]; then echo "No terminal available (no /dev/tty and no terminal at stderr)" return 1 fi
if test_fd0 2>/dev/null; then exec {FD}<&0 restore=2 else restore=1 fi
if [[ ! -c /dev/tty ]]; then exec <&2 else exec </dev/tty fi fi
# Run the command "$@"
# Restore FD state (( restore == 1 )) && exec <&- (( restore == 2 )) && exec <&$FD && exec {FD}<&-
# vim: set filetype=zsh:
|