mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 01:41:48 -06:00
73dda868cc
This is part of a general effort to move all of Terraform's non-library package surface under internal in order to reinforce that these are for internal use within Terraform only. If you were previously importing packages under this prefix into an external codebase, you could pin to an earlier release tag as an interim solution until you've make a plan to achieve the same functionality some other way.
51 lines
1.6 KiB
Go
51 lines
1.6 KiB
Go
package remote
|
|
|
|
import (
|
|
"regexp"
|
|
|
|
"github.com/mitchellh/colorstring"
|
|
)
|
|
|
|
// TODO SvH: This file should be deleted and the type cliColorize should be
|
|
// renamed back to Colorize as soon as we can pass -no-color to the backend.
|
|
|
|
// colorsRe is used to find ANSI escaped color codes.
|
|
var colorsRe = regexp.MustCompile("\033\\[\\d{1,3}m")
|
|
|
|
// Colorer is the interface that must be implemented to colorize strings.
|
|
type Colorer interface {
|
|
Color(v string) string
|
|
}
|
|
|
|
// Colorize is used to print output when the -no-color flag is used. It will
|
|
// strip all ANSI escaped color codes which are set while the operation was
|
|
// executed in Terraform Enterprise.
|
|
//
|
|
// When Terraform Enterprise supports run specific variables, this code can be
|
|
// removed as we can then pass the CLI flag to the backend and prevent the color
|
|
// codes from being written to the output.
|
|
type Colorize struct {
|
|
cliColor *colorstring.Colorize
|
|
}
|
|
|
|
// Color will strip all ANSI escaped color codes and return a uncolored string.
|
|
func (c *Colorize) Color(v string) string {
|
|
return colorsRe.ReplaceAllString(c.cliColor.Color(v), "")
|
|
}
|
|
|
|
// Colorize returns the Colorize structure that can be used for colorizing
|
|
// output. This is guaranteed to always return a non-nil value and so is useful
|
|
// as a helper to wrap any potentially colored strings.
|
|
func (b *Remote) Colorize() Colorer {
|
|
if b.CLIColor != nil && !b.CLIColor.Disable {
|
|
return b.CLIColor
|
|
}
|
|
if b.CLIColor != nil {
|
|
return &Colorize{cliColor: b.CLIColor}
|
|
}
|
|
return &Colorize{cliColor: &colorstring.Colorize{
|
|
Colors: colorstring.DefaultColors,
|
|
Disable: true,
|
|
}}
|
|
}
|