From edf85de411cb6f0c504490501d2b9cde835fec48 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 12 Oct 2014 22:56:34 -0700 Subject: [PATCH] terraform: output state in human-readable format /cc @armon - Didn't need to save the bits here, plus it makes it easier for someone to go in and modify this stuff --- terraform/state.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/terraform/state.go b/terraform/state.go index 503f01c17e..f13ecf109d 100644 --- a/terraform/state.go +++ b/terraform/state.go @@ -643,10 +643,20 @@ func WriteState(d *State, dst io.Writer) error { // Always increment the serial number d.Serial++ - enc := json.NewEncoder(dst) - if err := enc.Encode(d); err != nil { + // Encode the data in a human-friendly way + data, err := json.MarshalIndent(d, "", " ") + if err != nil { + return fmt.Errorf("Failed to encode state: %s", err) + } + + // We append a newline to the data because MarshalIndent doesn't + data = append(data, '\n') + + // Write the data out to the dst + if _, err := io.Copy(dst, bytes.NewReader(data)); err != nil { return fmt.Errorf("Failed to write state: %v", err) } + return nil }