github.com/WindomZ/go-commander@v1.2.2/help_message.go (about) 1 package commander 2 3 import ( 4 "bytes" 5 "strings" 6 ) 7 8 const _HelpMessageSpace string = " " 9 10 type _HelpMessage struct { 11 buffer bytes.Buffer 12 } 13 14 func (h *_HelpMessage) write(s string, spaces int) (int, error) { 15 for ; spaces > 0; spaces-- { 16 s = _HelpMessageSpace + s 17 } 18 return h.buffer.WriteString(s) 19 } 20 21 func (h *_HelpMessage) Line() *_HelpMessage { 22 h.buffer.WriteString("\n") 23 return h 24 } 25 26 func (h *_HelpMessage) Description(s string) error { 27 _, err := h.write(s+"\n\n", 1) 28 return err 29 } 30 31 func (h *_HelpMessage) Title(s string) error { 32 _, err := h.write(s+":\n", 1) 33 return err 34 } 35 36 func (h *_HelpMessage) Subtitle(s string) error { 37 if strings.Contains(s, "\n") { 38 strs := strings.Split(s, "\n") 39 for _, str := range strs { 40 if len(strings.TrimSpace(str)) == 0 { 41 } else if _, err := h.write(str+"\n", 2); err != nil { 42 return err 43 } 44 } 45 return nil 46 } 47 _, err := h.write(s+"\n", 2) 48 return err 49 } 50 51 func (h _HelpMessage) String() string { 52 return h.buffer.String() 53 }