github.com/vmware/govmomi@v0.51.0/cli/library/trust/create.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package trust 6 7 import ( 8 "bytes" 9 "context" 10 "flag" 11 "io" 12 "os" 13 "path/filepath" 14 15 "github.com/vmware/govmomi/cli" 16 "github.com/vmware/govmomi/cli/flags" 17 "github.com/vmware/govmomi/vapi/library" 18 ) 19 20 type create struct { 21 *flags.ClientFlag 22 } 23 24 func init() { 25 cli.Register("library.trust.create", &create{}) 26 } 27 28 func (cmd *create) Register(ctx context.Context, f *flag.FlagSet) { 29 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 30 cmd.ClientFlag.Register(ctx, f) 31 } 32 33 func (cmd *create) Usage() string { 34 return "FILE" 35 } 36 37 func (cmd *create) Description() string { 38 return `Add a certificate to content library trust store. 39 40 If FILE name is "-", read certificate from stdin. 41 42 Examples: 43 govc library.trust.create cert.pem 44 govc about.cert -show -u wp-content-int.vmware.com | govc library.trust.create -` 45 } 46 47 func (cmd *create) Run(ctx context.Context, f *flag.FlagSet) error { 48 c, err := cmd.RestClient() 49 if err != nil { 50 return err 51 } 52 53 var cert string 54 55 name := f.Arg(0) 56 if name == "-" || name == "" { 57 var buf bytes.Buffer 58 if _, err := io.Copy(&buf, os.Stdin); err != nil { 59 return err 60 } 61 cert = buf.String() 62 } else { 63 b, err := os.ReadFile(filepath.Clean(name)) 64 if err != nil { 65 return err 66 } 67 cert = string(b) 68 } 69 70 return library.NewManager(c).CreateTrustedCertificate(ctx, cert) 71 }