mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
* prep for processing the structured run output * undo unwanted change to a json key * Add skeleton functions and API for refactored renderer * goimports * Fix documentation of the RenderOpts struct * Add rendering functionality for primitives to the structured renderer * add test case for override * Add support for parsing and rendering sensitive values in the renderer * Add support for unknown/computed values in the structured renderer * delete missing unit tests
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package change
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/hashicorp/terraform/internal/plans"
|
|
)
|
|
|
|
func Primitive(before, after *string) Renderer {
|
|
return &primitiveRenderer{
|
|
before: before,
|
|
after: after,
|
|
}
|
|
}
|
|
|
|
type primitiveRenderer struct {
|
|
NoWarningsRenderer
|
|
|
|
before *string
|
|
after *string
|
|
}
|
|
|
|
func (renderer primitiveRenderer) Render(result Change, indent int, opts RenderOpts) string {
|
|
var beforeValue, afterValue string
|
|
|
|
if renderer.before != nil {
|
|
beforeValue = *renderer.before
|
|
} else {
|
|
beforeValue = "[dark_gray]null[reset]"
|
|
}
|
|
|
|
if renderer.after != nil {
|
|
afterValue = *renderer.after
|
|
} else {
|
|
afterValue = "[dark_gray]null[reset]"
|
|
}
|
|
|
|
switch result.action {
|
|
case plans.Create:
|
|
return fmt.Sprintf("%s%s", afterValue, result.forcesReplacement())
|
|
case plans.Delete:
|
|
return fmt.Sprintf("%s%s%s", beforeValue, result.nullSuffix(opts.overrideNullSuffix), result.forcesReplacement())
|
|
case plans.NoOp:
|
|
return fmt.Sprintf("%s%s", beforeValue, result.forcesReplacement())
|
|
default:
|
|
return fmt.Sprintf("%s [yellow]->[reset] %s%s", beforeValue, afterValue, result.forcesReplacement())
|
|
}
|
|
}
|