vitess.io/vitess@v0.16.2/go/cmd/rulesctl/common/common.go (about)

     1  package common
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"log"
     7  	"os"
     8  
     9  	vtfcr "vitess.io/vitess/go/vt/vttablet/customrule/filecustomrule"
    10  	"vitess.io/vitess/go/vt/vttablet/tabletserver/rules"
    11  )
    12  
    13  func GetRules(path string) *rules.Rules {
    14  	rules, err := vtfcr.ParseRules(path)
    15  	if err != nil {
    16  		log.Fatalf("Failure attempting to parse rules: %v", err)
    17  	}
    18  	return rules
    19  }
    20  
    21  func MustPrintJSON(obj any) {
    22  	enc, err := json.MarshalIndent(obj, "", "  ")
    23  	if err != nil {
    24  		log.Fatalf("Unable to marshal object: %v", err)
    25  	}
    26  	fmt.Printf("%v\n", string(enc))
    27  }
    28  
    29  func MustWriteJSON(obj any, path string) {
    30  	enc, err := json.MarshalIndent(obj, "", "  ")
    31  	if err != nil {
    32  		log.Fatalf("Unable to marshal object: %v", err)
    33  	}
    34  
    35  	err = os.WriteFile(path, enc, 0400)
    36  	if err != nil {
    37  		log.Fatalf("Unable to save new JSON: %v", err)
    38  	}
    39  }