// Copyright 2016-2018, Pulumi Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package display import ( "io" "github.com/pulumi/pulumi/pkg/v3/backend/display/internal/terminal" "github.com/pulumi/pulumi/sdk/v3/go/common/diag/colors" ) // Type of output to display. type Type int const ( // DisplayProgress displays an update as it progresses. DisplayProgress Type = iota // DisplayDiff displays a rich diff. DisplayDiff // DisplayQuery displays query output. DisplayQuery // DisplayWatch displays watch output. DisplayWatch ) // Options controls how the output of events are rendered type Options struct { Color colors.Colorization // colorization to apply to events. ShowConfig bool // true if we should show configuration information. ShowPolicyRemediations bool // true if we should show detailed policy remediations. ShowResourceChanges bool // true if we should print detailed resource changes. ShowReplacementSteps bool // true to show the replacement steps in the plan. ShowSameResources bool // true to show the resources that aren't updated in addition to updates. ShowReads bool // true to show resources that are being read in TruncateOutput bool // true if we should truncate long outputs SuppressOutputs bool // true to suppress output summarization, e.g. if contains sensitive info. SuppressPermalink bool // true to suppress state permalink (including in DIY backends) SummaryDiff bool // true if diff display should be summarized. IsInteractive bool // true if we should display things interactively. Type Type // type of display (rich diff, progress, or query). JSONDisplay bool // true if we should emit the entire diff as JSON. EventLogPath string // the path to the file to use for logging events, if any. Debug bool // true to enable debug output. Stdin io.Reader // the reader to use for stdin. Defaults to os.Stdin if unset. Stdout io.Writer // the writer to use for stdout. Defaults to os.Stdout if unset. Stderr io.Writer // the writer to use for stderr. Defaults to os.Stderr if unset. SuppressTimings bool // true to suppress displaying timings of resource actions SuppressProgress bool // true to suppress displaying progress spinner. ShowLinkToCopilot bool // true to display a 'explainFailure' link to Copilot. // Low level options term terminal.Terminal DeterministicOutput bool // true to disable timing-based rendering RenderOnDirty bool // true to always render frames when marked dirty } func (opts Options) WithIsInteractive(isInteractive bool) Options { opts.IsInteractive = isInteractive return opts }