pulumi/pkg/backend/display/options.go

73 lines
3.6 KiB
Go

// 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
}