/usr/share/gocode/src/github.com/hashicorp/serf/command/output.go is in golang-github-hashicorp-serf-dev 0.7.0~ds1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | package command
import (
"encoding/json"
"fmt"
"strings"
)
// Format some raw data for output. For better or worse, this currently forces
// the passed data object to implement fmt.Stringer, since it's pretty hard to
// implement a canonical *-to-string function.
func formatOutput(data interface{}, format string) ([]byte, error) {
var out string
switch format {
case "json":
jsonout, err := json.MarshalIndent(data, "", " ")
if err != nil {
return nil, err
}
out = string(jsonout)
case "text":
out = data.(fmt.Stringer).String()
default:
return nil, fmt.Errorf("Invalid output format \"%s\"", format)
}
return []byte(prepareOutput(out)), nil
}
// Apply some final formatting to make sure we don't end up with extra newlines
func prepareOutput(in string) string {
return strings.TrimSpace(string(in))
}
|