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 }