bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#21711: tee: preserve isatty(). Goal: show colors to user.


From: Pádraig Brady
Subject: bug#21711: tee: preserve isatty(). Goal: show colors to user.
Date: Mon, 19 Oct 2015 17:05:22 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

tag notabug
close 21711
stop

On 19/10/15 14:06, Thomas Güttler wrote:
> It would be great if tee would allow this:
> 
> tee preserves isatty(), thus the caller thinks this
> is a real terminal and outputs ansi color codes.
> 
> Tee displays the ansi colors on the screen. The output
> to the file gets filtered by tee (remove ansi color codes).
> 
> I would make this optional since I guess the result will be
> only 99% equal to the old result.
> 
> Example:
> 
> git diff | tee --show-colors git.diff
> 
> The user sees the color, and the file "git.diff" contains
> the output with the color codes removed.
> 
> Related: 
> http://superuser.com/questions/352697/preserve-colors-while-piping-to-tee

The options provided there are really all that is possible I think.
I.E. tell the command writing to the pipe, that it should consider it a 
terminal.
Since tee is "behind the pipe" it can't influence the writer to the pipe.

If you really want the color terminal codes in git.diff then you can:

  git diff --color=always | tee git.diff

If you also want an appropriate pager:

  git diff --color=always | tee git.diff | less -R

If you want just the diff without color codes in the file
then you can color easily after the fact with something like:
http://www.pixelbeat.org/scripts/idiff

  git diff | tee git.diff | idiff

cheers,
Pádraig.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]