summaryrefslogtreecommitdiff
path: root/cmd/rr/utils
diff options
context:
space:
mode:
authorWolfy-J <[email protected]>2018-06-11 11:20:03 +0300
committerWolfy-J <[email protected]>2018-06-11 11:20:03 +0300
commit6efaa0aa951240c2bb643761f103ee3f0fafb4d9 (patch)
tree962a39dede696c3e8d9f6cb6f6fdac88c6ef03d5 /cmd/rr/utils
parent7cc6d00a1c350eb3147ede00802d312d4be94dee (diff)
moving stuff around
Diffstat (limited to 'cmd/rr/utils')
-rw-r--r--cmd/rr/utils/cprint.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/cmd/rr/utils/cprint.go b/cmd/rr/utils/cprint.go
new file mode 100644
index 00000000..f6f828f8
--- /dev/null
+++ b/cmd/rr/utils/cprint.go
@@ -0,0 +1,32 @@
+package utils
+
+import (
+ "fmt"
+ "gopkg.in/AlecAivazis/survey.v1/core"
+ "regexp"
+ "strings"
+)
+
+// Printf works identically to fmt.Print but adds `<white+hb>color formatting support for CLI</reset>`.
+func Printf(format string, args ...interface{}) {
+ fmt.Print(Sprintf(format, args...))
+}
+
+// Sprintf works identically to fmt.Sprintf but adds `<white+hb>color formatting support for CLI</reset>`.
+func Sprintf(format string, args ...interface{}) string {
+ r, err := regexp.Compile(`<([^>]+)>`)
+ if err != nil {
+ panic(err)
+ }
+
+ format = r.ReplaceAllStringFunc(format, func(s string) string {
+ return fmt.Sprintf(`{{color "%s"}}`, strings.Trim(s, "<>/"))
+ })
+
+ out, err := core.RunTemplate(fmt.Sprintf(format, args...), nil)
+ if err != nil {
+ panic(err)
+ }
+
+ return out
+}