Print prints the provided data to stdout.
(data interface{})
| 48 | |
| 49 | // Print prints the provided data to stdout. |
| 50 | func (p *Printer) Print(data interface{}) error { |
| 51 | format := strings.ToLower(viper.GetString("format")) |
| 52 | if format == "" || format == "yaml" { |
| 53 | return yaml.NewEncoder( |
| 54 | ansi.NewAnsiStdout(), |
| 55 | yaml.EncoderColors(p.colors), |
| 56 | yaml.EncoderDateKeys([]glob.Glob{ |
| 57 | glob.MustCompile("last_login"), |
| 58 | glob.MustCompile("user_since"), |
| 59 | glob.MustCompile("date"), |
| 60 | glob.MustCompile("*_date"), |
| 61 | })).Encode(data) |
| 62 | } else if format == "json" { |
| 63 | encoder := json.NewEncoder(ansi.NewAnsiStdout()) |
| 64 | encoder.SetIndent("", " ") |
| 65 | return encoder.Encode(data) |
| 66 | } else if format == "csv" { |
| 67 | return csv.NewEncoder(ansi.NewAnsiStdout()).Encode(data) |
| 68 | } else { |
| 69 | return errors.New("unknown format") |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | // PrintSyncMap prints a sync.Map. |
| 74 | func (p *Printer) PrintSyncMap(sm *sync.Map) error { |
no test coverage detected