github.com/WindomZ/go-commander@v1.2.2/commands.go (about)

     1  package commander
     2  
     3  // _Commands Command line commands implementation
     4  type _Commands []*_Command
     5  
     6  // OptionsString
     7  func (c _Commands) OptionsString() (r map[string]string) {
     8  	r = make(map[string]string, len(c))
     9  	for _, cmd := range c {
    10  		opts := cmd.OptionsString()
    11  		for k, v := range opts {
    12  			r[k] = v
    13  		}
    14  	}
    15  	return
    16  }
    17  
    18  // CommandsString
    19  func (c _Commands) CommandsString(prefix string) (r []string) {
    20  	for _, cmd := range c {
    21  		r = append(r, cmd.CommandsString(prefix)...)
    22  	}
    23  	return
    24  }
    25  
    26  func (c _Commands) run(context Context) _Result {
    27  	for _, cmd := range c {
    28  		if r := cmd.run(context); r != nil {
    29  			return r
    30  		}
    31  	}
    32  	return nil
    33  }