pkg / diff

BSD 3-Clause "New" or "Revised" License
88 stars 9 forks source link

make color output detect terminals? #27

Open josharian opened 3 years ago

josharian commented 3 years ago

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?

mvdan commented 3 years ago

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.