| package format // import "gotest.tools/internal/format" |
| |
| import "fmt" |
| |
| // Message accepts a msgAndArgs varargs and formats it using fmt.Sprintf |
| func Message(msgAndArgs ...interface{}) string { |
| switch len(msgAndArgs) { |
| case 0: |
| return "" |
| case 1: |
| return fmt.Sprintf("%v", msgAndArgs[0]) |
| default: |
| return fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...) |
| } |
| } |
| |
| // WithCustomMessage accepts one or two messages and formats them appropriately |
| func WithCustomMessage(source string, msgAndArgs ...interface{}) string { |
| custom := Message(msgAndArgs...) |
| switch { |
| case custom == "": |
| return source |
| case source == "": |
| return custom |
| } |
| return fmt.Sprintf("%s: %s", source, custom) |
| } |