@@ -24,6 +24,8 @@ import (
24
24
"sort"
25
25
26
26
"github.com/ghodss/yaml"
27
+ "github.com/golang/protobuf/jsonpb"
28
+ "github.com/golang/protobuf/proto"
27
29
"github.com/urfave/cli"
28
30
"google.golang.org/grpc"
29
31
utilyaml "k8s.io/apimachinery/pkg/util/yaml"
@@ -178,8 +180,42 @@ func outputYAML(v interface{}) error {
178
180
return nil
179
181
}
180
182
181
- func outputStatusInfo (status interface {}, info map [string ]string , format string ) error {
182
- statusByte , err := json .Marshal (status )
183
+ func protobufObjectToJSON (obj proto.Message ) (string , error ) {
184
+ jsonpbMarshaler := jsonpb.Marshaler {EmitDefaults : true , Indent : " " }
185
+ marshaledJSON , err := jsonpbMarshaler .MarshalToString (obj )
186
+ if err != nil {
187
+ return "" , err
188
+ }
189
+
190
+ return marshaledJSON , nil
191
+ }
192
+
193
+ func outputProtobufObjAsJSON (obj proto.Message ) error {
194
+ marshaledJSON , err := protobufObjectToJSON (obj )
195
+ if err != nil {
196
+ return err
197
+ }
198
+
199
+ fmt .Println (marshaledJSON )
200
+ return nil
201
+ }
202
+
203
+ func outputProtobufObjAsYAML (obj proto.Message ) error {
204
+ marshaledJSON , err := protobufObjectToJSON (obj )
205
+ if err != nil {
206
+ return err
207
+ }
208
+ marshaledYAML , err := yaml .JSONToYAML ([]byte (marshaledJSON ))
209
+ if err != nil {
210
+ return err
211
+ }
212
+
213
+ fmt .Println (string (marshaledYAML ))
214
+ return nil
215
+ }
216
+
217
+ func outputStatusInfo (status proto.Message , info map [string ]string , format string ) error {
218
+ statusByte , err := protobufObjectToJSON (status )
183
219
if err != nil {
184
220
return err
185
221
}
0 commit comments