(filename string, data interface{})
| 200 | } |
| 201 | |
| 202 | func marshal(filename string, data interface{}) error { |
| 203 | fd, err := os.Create(filename) |
| 204 | if err != nil { |
| 205 | return err |
| 206 | } |
| 207 | defer fd.Close() |
| 208 | |
| 209 | switch ext := filepath.Ext(filename); ext { |
| 210 | case ".json": |
| 211 | encoder := json.NewEncoder(fd) |
| 212 | encoder.SetIndent("", " ") |
| 213 | return encoder.Encode(data) |
| 214 | case ".yml", ".yaml": |
| 215 | encoder := yaml.NewEncoder(fd) |
| 216 | return encoder.Encode(data) |
| 217 | default: |
| 218 | return errors.New("invalid format: " + ext) |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | func unmarshal(filename string, data interface{}) error { |
| 223 | fd, err := os.Open(filename) |
no test coverage detected