diff options
| author | Chris Nobody <[email protected]> | 2021-04-06 14:23:51 +0300 |
|---|---|---|
| committer | Chris Nobody <[email protected]> | 2021-04-06 14:23:51 +0300 |
| commit | e203f94963fb806fd8c7cc2339b96d458f84766e (patch) | |
| tree | febc157f142baa89fe8ae5466a4ff0ad990417ec /gocomplete/complete.go | |
| parent | a2c2f61e14485dafe98feb0613528a633a04e835 (diff) | |
gocomplete: suppress error output by default
Prevent the Go command completion from jumbling up the shell prompt on
errors by setting the Writer of the standard lib default log.Logger to
ioutil.Discard unless the system environment variable `GOCOMP_VERBOSE`
has been explicitly set to "1" (e.g. for debugging purposes).
Fixes #139
Diffstat (limited to 'gocomplete/complete.go')
| -rw-r--r-- | gocomplete/complete.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gocomplete/complete.go b/gocomplete/complete.go index 753a38e..4068bb5 100644 --- a/gocomplete/complete.go +++ b/gocomplete/complete.go @@ -2,10 +2,17 @@ package main import ( + "io/ioutil" + "log" + "os" + "github.com/posener/complete/v2" "github.com/posener/complete/v2/predict" ) +// envVerbose is the sys env var that controls error output verbosity. +const envVerbose = "GOCOMP_VERBOSE" + var ( ellipsis = predict.Set{"./..."} anyPackage = complete.PredictFunc(predictPackages) @@ -15,6 +22,10 @@ var ( ) func main() { + if os.Getenv(envVerbose) != "1" { + log.SetOutput(ioutil.Discard) + } + build := &complete.Command{ Flags: map[string]complete.Predictor{ "o": anyFile, |
