package keys import ( "encoding/json" "fmt" "io" "sigs.k8s.io/yaml" "git.cw.tr/mukan-network/mukan-sdk/client/flags" cryptokeyring "git.cw.tr/mukan-network/mukan-sdk/crypto/keyring" ) type bechKeyOutFn func(k *cryptokeyring.Record) (KeyOutput, error) func printKeyringRecord(w io.Writer, k *cryptokeyring.Record, bechKeyOut bechKeyOutFn, output string) error { ko, err := bechKeyOut(k) if err != nil { return err } switch output { case flags.OutputFormatText: if err := printTextRecords(w, []KeyOutput{ko}); err != nil { return err } case flags.OutputFormatJSON: out, err := json.Marshal(ko) if err != nil { return err } if _, err := fmt.Fprintln(w, string(out)); err != nil { return err } } return nil } func printKeyringRecords(w io.Writer, records []*cryptokeyring.Record, output string) error { kos, err := MkAccKeysOutput(records) if err != nil { return err } switch output { case flags.OutputFormatText: if err := printTextRecords(w, kos); err != nil { return err } case flags.OutputFormatJSON: out, err := json.Marshal(kos) if err != nil { return err } if _, err := fmt.Fprintf(w, "%s", out); err != nil { return err } } return nil } func printTextRecords(w io.Writer, kos []KeyOutput) error { out, err := yaml.Marshal(&kos) if err != nil { return err } if _, err := fmt.Fprintln(w, string(out)); err != nil { return err } return nil }