feat context: Add YAML loading support

Closes #5
This commit is contained in:
Vincent Ambo 2017-02-08 13:11:10 +01:00
parent c58ce7e2ab
commit d94a0ffc25

View file

@ -2,9 +2,12 @@ package context
import ( import (
"encoding/json" "encoding/json"
"fmt"
"io/ioutil" "io/ioutil"
"path" "path"
"strings"
"github.com/ghodss/yaml"
"github.com/polydawn/meep" "github.com/polydawn/meep"
) )
@ -38,7 +41,17 @@ func LoadContextFromFile(filename string) (*Context, error) {
var c Context var c Context
err = json.Unmarshal(file, &c) if strings.HasSuffix(filename, "json") {
err = json.Unmarshal(file, &c)
} else if strings.HasSuffix(filename, "yaml") || strings.HasSuffix(filename, "yml") {
err = yaml.Unmarshal(file, &c)
} else {
return nil, meep.New(
&ContextLoadingError{Filename: filename},
meep.Cause(fmt.Errorf("File format not supported. Must be JSON or YAML.")),
)
}
if err != nil { if err != nil {
return nil, meep.New( return nil, meep.New(
&ContextLoadingError{Filename: filename}, &ContextLoadingError{Filename: filename},