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  }