github.com/grafana/pyroscope@v1.18.0/tools/yaml-to-json/main.go (about)

     1  package main
     2  
     3  import (
     4  	"encoding/json"
     5  	"io"
     6  	"log"
     7  	"os"
     8  
     9  	"sigs.k8s.io/yaml"
    10  )
    11  
    12  func main() {
    13  	if err := run(); err != nil {
    14  		log.Fatal(err)
    15  	}
    16  }
    17  
    18  func run() error {
    19  	yamlBody, err := io.ReadAll(os.Stdin)
    20  	if err != nil {
    21  		return err
    22  	}
    23  
    24  	jsonBody, err := yaml.YAMLToJSON(yamlBody)
    25  	if err != nil {
    26  		return err
    27  	}
    28  
    29  	var jsonStruct interface{}
    30  	if err := json.Unmarshal(jsonBody, &jsonStruct); err != nil {
    31  		return err
    32  	}
    33  	jsonBody, err = json.MarshalIndent(&jsonStruct, "", "  ")
    34  	if err != nil {
    35  		return err
    36  	}
    37  
    38  	_, err = os.Stdout.Write(jsonBody)
    39  	return err
    40  }