# HG changeset patch # User Mikael Berthe # Date 1488120469 -3600 # Node ID c64c730a7b1677fb904c3cc950326540aad32753 # Parent 009c05621fba8a6cee357935674ed5529aa0aee3 Add option --before Add alias "--after" for "--since" for consistency. diff -r 009c05621fba -r c64c730a7b16 gobm65.go --- a/gobm65.go Sun Feb 26 15:37:12 2017 +0100 +++ b/gobm65.go Sun Feb 26 15:47:49 2017 +0100 @@ -397,7 +397,9 @@ inFile := flag.String([]string{"-input-file", "i"}, "", "Input JSON file") outFile := flag.String([]string{"-output-file", "o"}, "", "Output JSON file") limit := flag.Uint([]string{"-limit", "l"}, 0, "Limit number of items to N first") - since := flag.String([]string{"-since"}, "", + before := flag.String([]string{"-before"}, "", + "Filter records before date (YYYY-mm-dd HH:MM:SS)") + since := flag.String([]string{"-since", "-after"}, "", "Filter records from date (YYYY-mm-dd HH:MM:SS)") format := flag.String([]string{"-format", "f"}, "", "Output format (csv, json)") avg := flag.Bool([]string{"-average", "a"}, false, "Compute average") @@ -444,6 +446,11 @@ log.Fatal("Could not parse date: ", err) } + endDate, err := parseDate(*before) + if err != nil { + log.Fatal("Could not parse date: ", err) + } + var items []measurement // Read data @@ -484,6 +491,19 @@ } } + if !endDate.IsZero() { + log.Printf("Filtering out records after %v...\n", endDate) + for i := range items { + iDate := time.Date(items[i].Year, time.Month(items[i].Month), + items[i].Day, items[i].Hour, items[i].Minute, 0, 0, + time.Local) + if iDate.Sub(endDate) <= 0 { + items = items[i:] + break + } + } + } + if *fromTime != "" || *toTime != "" { log.Println("Filtering hours...")