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 }