Skip to content
This repository has been archived by the owner on Jul 30, 2023. It is now read-only.

feat: colorize only ttys #1

Merged
merged 1 commit into from Oct 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
23 changes: 20 additions & 3 deletions command/runner.go
Expand Up @@ -2,6 +2,7 @@ package command

import (
"bytes"
"github.com/mattn/go-isatty"
"io"
"os"
"os/exec"
Expand All @@ -27,16 +28,32 @@ func Run(args []string) error {
return err
}

fd := os.Stdout.Fd()
colorize := isatty.IsTerminal(fd) || isatty.IsCygwinTerminal(fd)

var bufout, buferr bytes.Buffer
bufoutReader := io.TeeReader(outReader, &bufout)
buferrReader := io.TeeReader(errReader, &buferr)
var bufoutReader io.Reader
var buferrReader io.Reader

if !colorize {
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
} else {
bufoutReader = io.TeeReader(outReader, &bufout)
buferrReader = io.TeeReader(errReader, &buferr)
}

if err = cmd.Start(); err != nil {
return err
}

subcommandInfo, ok := kubectl.InspectSubcommandInfo(args)
if !colorize {
cmd.Wait()
return nil
}

subcommandInfo, ok := kubectl.InspectSubcommandInfo(args)

wg := &sync.WaitGroup{}

switch {
Expand Down
1 change: 1 addition & 0 deletions go.mod
Expand Up @@ -7,5 +7,6 @@ require (
github.com/goccy/go-yaml v1.8.2
github.com/hokaccha/go-prettyjson v0.0.0-20190818114111-108c894c2c0e
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de
github.com/mattn/go-isatty v0.0.11
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect
)