prysm-pulse/validator/keymanager/opts.go

33 lines
667 B
Go
Raw Normal View History

package keymanager
import (
"encoding/json"
"io/ioutil"
"strings"
)
// decodeOpts decodes a value in to an options container.
// The input can be either JSON data or a path to a file containing JSON.
// This function returns an error if there is a problem decoding the input.
func decodeOpts(input string, res interface{}) error {
if input == "" {
// Empty input is okay.
return nil
}
var data []byte
if strings.HasPrefix(input, "{") {
// Looks like straight JSON.
data = []byte(input)
} else {
// Assume it's a path.
file, err := ioutil.ReadFile(input)
if err != nil {
return err
}
data = file
}
return json.Unmarshal(data, res)
}