pulumi/pkg/util/cmdutil/diag.go
Joe Duffy f0c28db639
Attempt to fix colorization (#740)
Our recent changes to colorization changed from a boolean to a tri-valued
enum (Always, Never, Raw).  The events from the service, however, are still
boolean-valued.  This changes the message payload to carry the full values.
2017-12-18 11:42:32 -08:00

29 lines
783 B
Go

// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
package cmdutil
import (
"os"
"github.com/pulumi/pulumi/pkg/diag"
"github.com/pulumi/pulumi/pkg/diag/colors"
"github.com/pulumi/pulumi/pkg/util/contract"
)
var snk diag.Sink
// Diag lazily allocates a sink to be used if we can't create a compiler.
func Diag() diag.Sink {
if snk == nil {
snk = diag.DefaultSink(os.Stdout, os.Stderr, diag.FormatOptions{
Color: colors.Always, // turn on colorization of warnings/errors.
})
}
return snk
}
// InitDiag forces initialization of the diagnostics sink with the given options.
func InitDiag(opts diag.FormatOptions) {
contract.Assertf(snk == nil, "Cannot initialize diagnostics sink more than once")
snk = diag.DefaultSink(os.Stdout, os.Stderr, opts)
}