1package filesystem
2
3import (
4	"encoding/json"
5	"io/ioutil"
6)
7
8const fourSpaces = "    "
9const defaultReadPermissions = 0644
10
11func WriteJsonSerializableToFile(jsonEntity interface{}, filename string) error {
12	serialized, err := json.MarshalIndent(jsonEntity, "", fourSpaces)
13
14	if err != nil {
15		return err
16	}
17
18	return ioutil.WriteFile(
19		filename,
20		serialized,
21		defaultReadPermissions,
22	)
23}
24
25func ReadFileAsJson(filename string, outputEntityAddress interface{}) error {
26	fileContents, err := ioutil.ReadFile(filename)
27
28	if err != nil {
29		return err
30	}
31
32	return json.Unmarshal(fileContents, outputEntityAddress)
33}
34