Posted to tcl by mjanssen at Tue Feb 02 10:29:34 GMT 2021view pretty
proc util::exec_tail {args} { # On platforms with `kill`, we can print the output produced by a # process while it's running. Uses globals and vwait, so only one # at a time. set args [lsearch -all -inline -not -exact $args "-ignorestderr"] set ::done 0 set ::tmp [open "| $args 2>@1"] chan configure $::tmp -blocking 0 -buffering none chan event $::tmp readable { set l [chan read $::tmp] if {![chan eof $::tmp]} { puts -nonewline $l flush stdout } else { set ::done 1 } } vwait ::done chan close $::tmp unset ::done unset ::tmp }
Comments
Posted by anticrisis at Tue Feb 02 18:13:06 GMT 2021 [text] [code]
Thank you, open to a pipe is so much cleaner!