cli.go 927 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Package cli provides a minimal framework for creating and organizing command line
  2. // Go applications. cli is designed to be easy to understand and write, the most simple
  3. // cli application can be written as follows:
  4. // func main() {
  5. // cli.NewApp().Run(os.Args)
  6. // }
  7. //
  8. // Of course this application does not do much, so let's make this an actual application:
  9. // func main() {
  10. // app := cli.NewApp()
  11. // app.Name = "greet"
  12. // app.Usage = "say a greeting"
  13. // app.Action = func(c *cli.Context) {
  14. // println("Greetings")
  15. // }
  16. //
  17. // app.Run(os.Args)
  18. // }
  19. package cli
  20. import (
  21. "strings"
  22. )
  23. type MultiError struct {
  24. Errors []error
  25. }
  26. func NewMultiError(err ...error) MultiError {
  27. return MultiError{Errors: err}
  28. }
  29. func (m MultiError) Error() string {
  30. errs := make([]string, len(m.Errors))
  31. for i, err := range m.Errors {
  32. errs[i] = err.Error()
  33. }
  34. return strings.Join(errs, "\n")
  35. }