--- 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 {