# HG changeset patch # User Mikael Berthe # Date 1488119341 -3600 # Node ID be004d8634e14ac100f4997b1df4fdec39b49ef8 # Parent 72f6336c11671f80f7de10af63ea9deca4f702da Add support for several input JSON files diff -r 72f6336c1167 -r be004d8634e1 gobm65.go --- a/gobm65.go Sun Feb 26 15:13:37 2017 +0100 +++ b/gobm65.go Sun Feb 26 15:29:01 2017 +0100 @@ -46,6 +46,9 @@ // % gobm65 -i data_u2.json -l 3 --stats // Read a JSON file, merge with device records, and save to another file: // % gobm65 -i data_u2.json --merge -o data_u2-new.json +// +// Data from several JSON files can be merged, files are separated with a ';': +// % gobm65 -i "data_u0.json;data_u1.json;data_u2.json" import ( "encoding/json" @@ -55,6 +58,7 @@ "log" "math" "sort" + "strings" "time" flag "github.com/docker/docker/pkg/mflag" @@ -197,6 +201,23 @@ return items, err } +func loadFromJSONFiles(files string) (items []measurement, err error) { + filenames := strings.Split(files, ";") + + for _, f := range filenames { + if f == "" { + continue + } + records, err := loadFromJSONFile(f) + if err != nil { + return items, err + } + items = mergeItems(records, items) + } + + return +} + func mergeItems(newItems, oldItems []measurement) []measurement { var result []measurement @@ -435,7 +456,7 @@ } else { // Read from file var fileItems []measurement - if fileItems, err = loadFromJSONFile(*inFile); err != nil { + if fileItems, err = loadFromJSONFiles(*inFile); err != nil { log.Fatal(err) } if *merge {