config.go - randomcrap - random crap programs of varying quality
(HTM) git clone git://git.codemadness.org/randomcrap
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
config.go (598B)
---
1 package config
2
3 import (
4 "bytes"
5 "encoding/json"
6 "io"
7 "os"
8 )
9
10 func Read(r io.Reader, v interface{}) (error) {
11 return json.NewDecoder(r).Decode(v)
12 }
13
14 func ReadFile(filename string, v interface{}) (error) {
15 r, err := os.Open(filename)
16 if err != nil {
17 return err
18 }
19 defer r.Close()
20
21 return Read(r, v)
22 }
23
24 // write formatted config.
25 func WriteTo(w io.Writer, v interface{}) (n int64, err error) {
26 b, err := json.Marshal(v)
27 if err != nil {
28 return 0, err
29 }
30 var out bytes.Buffer
31 json.Indent(&out, b, "", "\t")
32 n, err = out.WriteTo(w)
33 if err != nil {
34 return n, err
35 }
36 return n, nil
37 }