github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/cmd/examplegen/config.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "io/ioutil" 7 ) 8 9 type Config struct { 10 Name string 11 Label string 12 TestOut string 13 TestContent string 14 MarkdownOut string 15 WorkspaceIn string 16 StripPrefix string 17 Files []string 18 } 19 20 // fromJSON constructs a Config struct from the given filename that contains a 21 // JSON. 22 func fromJSON(filename string) (*Config, error) { 23 data, err := ioutil.ReadFile(filename) 24 if err != nil { 25 return nil, fmt.Errorf("read: %w", err) 26 } 27 28 var config Config 29 if err := json.Unmarshal(data, &config); err != nil { 30 return nil, fmt.Errorf("unmarshal: %w", err) 31 } 32 33 return &config, nil 34 }