|
@@ -18,8 +18,6 @@ LOG_DIR="$LOG_ROOT"/"$PROG"/"$SUBPROG"/"$TIMESTAMP"
|
|
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
|
|
-PTYA="$LOG_DIR"/ptyA
|
|
|
-PTYB="$LOG_DIR"/ptyB
|
|
|
OUT="$LOG_DIR"/stdout
|
|
|
ERR="$LOG_DIR"/stderr
|
|
|
DAT="$LOG_DIR"/dat
|
|
@@ -41,15 +39,16 @@ trap 'info' EXIT
|
|
|
exec 2> >(tee -a "$DAT" "$ERR")
|
|
|
if [ -t 1 ] && ! [ "$PROG" = "sudo" ] && which socat 1>/dev/null 2>&1
|
|
|
then
|
|
|
- socat PTY,rawer,link="$PTYA" PTY,rawer,link="$PTYB" &
|
|
|
+ PTY="$LOG_DIR"/pty
|
|
|
+ socat PTY,rawer,link="$PTY"A PTY,rawer,link="$PTY"B &
|
|
|
socat="$!"
|
|
|
- for pty in "$PTYA" "$PTYB"
|
|
|
+ for pty in "$PTY"{A,B}
|
|
|
do
|
|
|
while ! [ -e "$pty" ]; do sleep 0.01; done
|
|
|
stty -F "$pty" rows "$LINES" cols "$COLUMNS"
|
|
|
done
|
|
|
- tee -a "$DAT" "$OUT" 2>/dev/null < "$PTYB" &
|
|
|
- exec 1> "$PTYA"
|
|
|
+ tee -a "$DAT" "$OUT" 2>/dev/null < "$PTY"B &
|
|
|
+ exec 1> "$PTY"A
|
|
|
else
|
|
|
exec 1> >(tee -a "$DAT" "$OUT")
|
|
|
fi
|