From f3b649aef1df20f150723e8ba6c8e44b0f3949aa Mon Sep 17 00:00:00 2001 From: sawka Date: Tue, 9 Jul 2024 11:50:52 -0700 Subject: [PATCH] optional 2nd arg to wsh getmeta to get a specific metadata key --- cmd/wsh/cmd/wshcmd-getmeta.go | 36 ++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/cmd/wsh/cmd/wshcmd-getmeta.go b/cmd/wsh/cmd/wshcmd-getmeta.go index d9551a459..a1de3c66b 100644 --- a/cmd/wsh/cmd/wshcmd-getmeta.go +++ b/cmd/wsh/cmd/wshcmd-getmeta.go @@ -16,7 +16,7 @@ import ( var getMetaCmd = &cobra.Command{ Use: "getmeta", Short: "get metadata for an entity", - Args: cobra.ExactArgs(1), + Args: cobra.RangeArgs(1, 2), Run: getMetaRun, } @@ -51,13 +51,31 @@ func getMetaRun(cmd *cobra.Command, args []string) { log.Printf("error getting metadata: %v\r\n", err) return } - outArr, err := json.MarshalIndent(resp, "", " ") - if err != nil { - log.Printf("error formatting metadata: %v\r\n", err) - return + if resp == nil { + resp = make(map[string]any) + } + if len(args) > 1 { + val, ok := resp[args[1]] + if !ok { + return + } + outBArr, err := json.MarshalIndent(val, "", " ") + if err != nil { + log.Printf("error formatting metadata: %v\r\n", err) + } + outStr := string(outBArr) + outStr = strings.ReplaceAll(outStr, "\n", "\r\n") + fmt.Print(outStr) + fmt.Print("\r\n") + } else { + outBArr, err := json.MarshalIndent(resp, "", " ") + if err != nil { + log.Printf("error formatting metadata: %v\r\n", err) + return + } + outStr := string(outBArr) + outStr = strings.ReplaceAll(outStr, "\n", "\r\n") + fmt.Print(outStr) + fmt.Print("\r\n") } - outStr := string(outArr) - outStr = strings.ReplaceAll(outStr, "\n", "\r\n") - fmt.Print(outStr) - fmt.Print("\r\n") }