From 7b5466be3e11e8b29c55c96b185a00f89bb99b6d Mon Sep 17 00:00:00 2001 From: Aleksey Lobanov Date: Mon, 28 Mar 2016 23:42:28 +0300 Subject: [PATCH] Added saving to json.gz and csv.gz --- src/main.go | 4 ++++ src/saving.go | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/main.go b/src/main.go index 710ce28..9dc56f8 100644 --- a/src/main.go +++ b/src/main.go @@ -309,6 +309,10 @@ func main() { SaveToCsvFile(exportingData, keyMap, *outputPath, *fullExport) case ".json": SaveToJSONFile(exportingData, keyMap, *outputPath, *fullExport) + case ".csv.gz": + SaveToCsvGzFile(exportingData, keyMap, *outputPath, *fullExport) + case ".json.gz": + SaveToJSONGzFile(exportingData, keyMap, *outputPath, *fullExport) default: log.Fatal("Incorrect file type") } diff --git a/src/saving.go b/src/saving.go index 19cfd09..cc63d12 100644 --- a/src/saving.go +++ b/src/saving.go @@ -2,6 +2,7 @@ package main import ( + "compress/gzip" "encoding/csv" "encoding/json" "io" @@ -101,3 +102,29 @@ func SaveToJSONFile(data []StatForTime, keyMap map[uint8]string, path string, fu SaveToJSONWriter(data, keyMap, jsonFile, fullExport) } + +func SaveToCsvGzFile(data []StatForTime, keyMap map[uint8]string, path string, fullExport bool) { + jsonFile, err := os.Create(path) + if err != nil { + log.Fatal(err) + } + defer jsonFile.Close() + + gzipWriter := gzip.NewWriter(jsonFile) + defer gzipWriter.Close() + + SaveToCsvWriter(data, keyMap, gzipWriter, fullExport) +} + +func SaveToJSONGzFile(data []StatForTime, keyMap map[uint8]string, path string, fullExport bool) { + jsonFile, err := os.Create(path) + if err != nil { + log.Fatal(err) + } + defer jsonFile.Close() + + gzipWriter := gzip.NewWriter(jsonFile) + defer gzipWriter.Close() + + SaveToJSONWriter(data, keyMap, gzipWriter, fullExport) +}