X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3399e630e78d09fa553a7d0876e2cddb4e154472..d235817fee3a904eeff85381c1a5227474900852:/sdk/go/config/load.go diff --git a/sdk/go/config/load.go b/sdk/go/config/load.go index 143be8be23..cab09c74e8 100644 --- a/sdk/go/config/load.go +++ b/sdk/go/config/load.go @@ -1,23 +1,33 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + package config import ( - "encoding/json" "fmt" "io/ioutil" + + "github.com/ghodss/yaml" ) // LoadFile loads configuration from the file given by configPath and // decodes it into cfg. // -// Currently, only JSON is supported. Support for YAML is anticipated. +// YAML and JSON formats are supported. func LoadFile(cfg interface{}, configPath string) error { buf, err := ioutil.ReadFile(configPath) if err != nil { return err } - err = json.Unmarshal(buf, cfg) + err = yaml.Unmarshal(buf, cfg) if err != nil { return fmt.Errorf("Error decoding config %q: %v", configPath, err) } return nil } + +// Dump returns a YAML representation of cfg. +func Dump(cfg interface{}) ([]byte, error) { + return yaml.Marshal(cfg) +}