github.com/ggreg80/ketos@v0.0.0-20171109040536-049616f51ddb/cmd/opmanifest/cat_cmd.go (about) 1 package opmanifest 2 3 import ( 4 "encoding/json" 5 "os" 6 7 "github.com/pkg/errors" 8 "github.com/setekhid/ketos/pkg/registry" 9 "github.com/spf13/cobra" 10 ) 11 12 var ( 13 CatManifest = &cobra.Command{ 14 Use: "cat-manifest", 15 Short: "cat-manifest [image-name]:tag", 16 Args: cobra.ExactArgs(1), 17 18 RunE: catManifest, 19 } 20 ) 21 22 func init() { 23 } 24 25 func catManifest(cmd *cobra.Command, args []string) error { 26 27 image, err := FillImage(args[0]) 28 if err != nil { 29 return err 30 } 31 32 repo, tag, err := registry.DockerImage(image).Connect() 33 if err != nil { 34 return err 35 } 36 37 manifest, err := repo.GetManifest(tag) 38 if err != nil { 39 return err 40 } 41 42 content, err := json.Marshal(manifest) 43 if err != nil { 44 return errors.Wrap(err, "marshal manifest") 45 } 46 47 _, err = os.Stdout.Write(content) 48 if err != nil { 49 return errors.Wrap(err, "output manifest to stdout") 50 } 51 52 return nil 53 }