package stenographer import ( "fmt" "strings" ) func (s *consoleStenographer) colorize(colorCode string, format string, args ...interface{}) string { var out string if len(args) > 0 { out = fmt.Sprintf(format, args...) } else { out = format } if s.color { return fmt.Sprintf("%s%s%s", colorCode, out, defaultStyle) } else { return out } } func (s *consoleStenographer) printBanner(text string, bannerCharacter string) { fmt.Fprintln(s.w, text) fmt.Fprintln(s.w, strings.Repeat(bannerCharacter, len(text))) } func (s *consoleStenographer) printNewLine() { fmt.Fprintln(s.w, "") } func (s *consoleStenographer) printDelimiter() { fmt.Fprintln(s.w, s.colorize(grayColor, "%s", strings.Repeat("-", 30))) } func (s *consoleStenographer) print(indentation int, format string, args ...interface{}) { fmt.Fprint(s.w, s.indent(indentation, format, args...)) } func (s *consoleStenographer) println(indentation int, format string, args ...interface{}) { fmt.Fprintln(s.w, s.indent(indentation, format, args...)) } func (s *consoleStenographer) indent(indentation int, format string, args ...interface{}) string { var text string if len(args) > 0 { text = fmt.Sprintf(format, args...) } else { text = format } stringArray := strings.Split(text, "\n") padding := "" if indentation >= 0 { padding = strings.Repeat(" ", indentation) } for i, s := range stringArray { stringArray[i] = fmt.Sprintf("%s%s", padding, s) } return strings.Join(stringArray, "\n") }