diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-10-29 20:58:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-29 20:58:51 +0100 |
commit | e7540d0406c49b22de245246d16ebc6e1778df37 (patch) | |
tree | d25a5f8d259d19f2c0017d9987e93d065e577f89 /vendor/github.com/morikuni/aec/ansi.go | |
parent | 5918f3a5f1d11862fbaaca94ff25f1d9cc1309e2 (diff) | |
parent | 66c126d6dee178f96f8a120f13372802d46ea9b5 (diff) | |
download | podman-e7540d0406c49b22de245246d16ebc6e1778df37.tar.gz podman-e7540d0406c49b22de245246d16ebc6e1778df37.tar.bz2 podman-e7540d0406c49b22de245246d16ebc6e1778df37.zip |
Merge pull request #4310 from nalind/manifest-lists
Move to containers/image v5, support manifest lists
Diffstat (limited to 'vendor/github.com/morikuni/aec/ansi.go')
-rw-r--r-- | vendor/github.com/morikuni/aec/ansi.go | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/github.com/morikuni/aec/ansi.go b/vendor/github.com/morikuni/aec/ansi.go new file mode 100644 index 000000000..e60722e6e --- /dev/null +++ b/vendor/github.com/morikuni/aec/ansi.go @@ -0,0 +1,59 @@ +package aec + +import ( + "fmt" + "strings" +) + +const esc = "\x1b[" + +// Reset resets SGR effect. +const Reset string = "\x1b[0m" + +var empty = newAnsi("") + +// ANSI represents ANSI escape code. +type ANSI interface { + fmt.Stringer + + // With adapts given ANSIs. + With(...ANSI) ANSI + + // Apply wraps given string in ANSI. + Apply(string) string +} + +type ansiImpl string + +func newAnsi(s string) *ansiImpl { + r := ansiImpl(s) + return &r +} + +func (a *ansiImpl) With(ansi ...ANSI) ANSI { + return concat(append([]ANSI{a}, ansi...)) +} + +func (a *ansiImpl) Apply(s string) string { + return a.String() + s + Reset +} + +func (a *ansiImpl) String() string { + return string(*a) +} + +// Apply wraps given string in ANSIs. +func Apply(s string, ansi ...ANSI) string { + if len(ansi) == 0 { + return s + } + return concat(ansi).Apply(s) +} + +func concat(ansi []ANSI) ANSI { + strs := make([]string, 0, len(ansi)) + for _, p := range ansi { + strs = append(strs, p.String()) + } + return newAnsi(strings.Join(strs, "")) +} |