diff icon indicating copy to clipboard operation
diff copied to clipboard

make color output detect terminals?

Open josharian opened this issue 4 years ago • 1 comments

Should we do terminal detection automatically? See e.g. https://github.com/tailscale/depaware/issues/11.

It would add significant dependencies, which is unfortunate. Perhaps we should instead provide easily copy/paste-able code that does it? Or maybe with lazy module loading in 1.17 it is enough to put terminal detection in its own package?

josharian avatar Jun 28 '21 17:06 josharian

I think deciding when to output color is going to vary between each downstream application. For example: What should the default be? Should they obey TERM=dumb and NO_COLOR? Should they have a flag to force color on? Should they also hook up a flag for any of this, like --color?

In terms of dependencies it wouldn't be huge, because you could use https://pkg.go.dev/golang.org/x/term#IsTerminal, but it's still an extra dep.

My vote goes for having a ready to use example people can copy from. We could perhaps make it a runnable example if we mock term.IsTerminal, and instead just link to pkg.go.dev in a comment.

mvdan avatar Jun 29 '21 08:06 mvdan