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  }