diff --git a/cmd/export.go b/cmd/export.go index 6f5a8e5..fa7a905 100644 --- a/cmd/export.go +++ b/cmd/export.go @@ -17,7 +17,7 @@ const ( OutputFileMode = 0644 ) -func Export(path, file, metad, ver string) error { +func Export(path, file, metad, ver string, formatJson bool) error { v, err := vault.NewClient() if v == nil || err != nil { if err != nil { @@ -68,10 +68,19 @@ func Export(path, file, metad, ver string) error { // Convert to json and write to a file export := Wrap{Data: items} - out, err := json.Marshal(&export) - if err != nil { - fmt.Println(err) + var out []byte + if formatJson { + out, err = json.MarshalIndent(&export, "", " ") + if err != nil { + fmt.Println(err) + } + } else { + out, err = json.Marshal(&export) + if err != nil { + fmt.Println(err) + } } + abs, err := filepath.Abs(file) if err != nil { fmt.Println(err) diff --git a/it/integration_test.go b/it/integration_test.go index c73dcc8..5a3c062 100644 --- a/it/integration_test.go +++ b/it/integration_test.go @@ -101,7 +101,7 @@ func TestMigrator__integration(t *testing.T) { t.Fatal(err) } defer os.Remove(tmp.Name()) - err = commands.Export("secret/", tmp.Name(), "", "1") + err = commands.Export("secret/", tmp.Name(), "", "1", false) if err != nil { t.Fatal(err) } diff --git a/main.go b/main.go index 63af8b8..ff5612d 100644 --- a/main.go +++ b/main.go @@ -21,6 +21,9 @@ var ( // Output the version version = flag.Bool("version", false, "Output the version number") + + // JSON formatting + formatJson = flag.Bool("pretty", true, "Format JSON output") ) const Version = "0.2.1-dev" @@ -46,7 +49,7 @@ func main() { if empty(ex, file) { exit() } - err := cmd.Export(*ex, *file, *md, *vr) + err := cmd.Export(*ex, *file, *md, *vr, *formatJson) if err != nil { fmt.Println(err) os.Exit(1)