2023-01-09 04:24:01 -06:00
|
|
|
package change
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"github.com/hashicorp/terraform/internal/plans"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Primitive(before, after *string) Renderer {
|
2023-01-09 04:55:55 -06:00
|
|
|
return &primitiveRenderer{
|
2023-01-09 04:24:01 -06:00
|
|
|
before: before,
|
|
|
|
after: after,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
type primitiveRenderer struct {
|
|
|
|
NoWarningsRenderer
|
|
|
|
|
|
|
|
before *string
|
|
|
|
after *string
|
|
|
|
}
|
|
|
|
|
2023-01-09 04:40:47 -06:00
|
|
|
func (renderer primitiveRenderer) Render(result Change, indent int, opts RenderOpts) string {
|
2023-01-09 04:24:01 -06:00
|
|
|
var beforeValue, afterValue string
|
|
|
|
|
2023-01-09 04:40:47 -06:00
|
|
|
if renderer.before != nil {
|
|
|
|
beforeValue = *renderer.before
|
2023-01-09 04:24:01 -06:00
|
|
|
} else {
|
|
|
|
beforeValue = "[dark_gray]null[reset]"
|
|
|
|
}
|
|
|
|
|
2023-01-09 04:40:47 -06:00
|
|
|
if renderer.after != nil {
|
|
|
|
afterValue = *renderer.after
|
2023-01-09 04:24:01 -06:00
|
|
|
} 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())
|
|
|
|
}
|
|
|
|
}
|