14259: Add method to keep client to request remote block copy via HEAD request.
[arvados.git] / sdk / go / config / load.go
index 143be8be23eedf319de1a8bf90ec3428dc2c944a..cab09c74e883c3dafabd22d11037e6e1a3dcc3ab 100644 (file)
@@ -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)
+}