summaryrefslogtreecommitdiff
path: root/io_helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'io_helpers.go')
-rw-r--r--io_helpers.go82
1 files changed, 82 insertions, 0 deletions
diff --git a/io_helpers.go b/io_helpers.go
new file mode 100644
index 0000000..3bf9600
--- /dev/null
+++ b/io_helpers.go
@@ -0,0 +1,82 @@
+package main
+
+import (
+ "bufio"
+ "encoding/csv"
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "os"
+)
+
+func readLines(filepath string) []string {
+ file, err := os.Open(filepath)
+ if err != nil {
+ panic(err)
+ }
+ defer file.Close()
+
+ resp := []string{}
+ scanner := bufio.NewScanner(file)
+ for scanner.Scan() {
+ resp = append(resp, scanner.Text())
+ }
+
+ if err := scanner.Err(); err != nil {
+ panic(err)
+ }
+ return resp
+}
+
+// writeLines writes the lines to the given file.
+func writeLines(lines []string, path string) error {
+ file, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ w := bufio.NewWriter(file)
+ for _, line := range lines {
+ fmt.Fprintln(w, line)
+ }
+ return w.Flush()
+}
+
+func readJson(filepath string) map[string]string {
+ data := make(map[string]string)
+ plan, err := ioutil.ReadFile(filepath)
+ if err != nil {
+ return data
+ }
+ err = json.Unmarshal(plan, &data)
+ if err != nil {
+ panic(err)
+ }
+ return data
+}
+
+func writeJson(data map[string]string) {
+ metadataJson, _ := json.MarshalIndent(data, "", " ")
+ err := ioutil.WriteFile(metadataPath, metadataJson, 0644)
+ if err != nil {
+ panic(err)
+ }
+}
+
+func writeCSV(data [][]string) {
+ f, err := os.Create(metadataPathCSV)
+ defer f.Close()
+
+ if err != nil {
+ panic(err)
+ }
+
+ w := csv.NewWriter(f)
+ w.Comma = '\t'
+ defer w.Flush()
+
+ if err := w.WriteAll(data); err != nil {
+ panic(err)
+ }
+}