github.com/ggreg80/ketos@v0.0.0-20171109040536-049616f51ddb/cmd/opmanifest/put_cmd.go (about) 1 package opmanifest 2 3 import ( 4 "encoding/json" 5 "os" 6 7 manifestV1 "github.com/docker/distribution/manifest/schema1" 8 "github.com/pkg/errors" 9 "github.com/setekhid/ketos/pkg/registry" 10 "github.com/spf13/cobra" 11 ) 12 13 var ( 14 PutManifest = &cobra.Command{ 15 Use: "put-manifest", 16 Short: "put-manifest [image-name]:tag", 17 Args: cobra.ExactArgs(1), 18 19 RunE: putManifest, 20 } 21 ) 22 23 func init() { 24 } 25 26 func putManifest(cmd *cobra.Command, args []string) error { 27 28 image, err := FillImage(args[0]) 29 if err != nil { 30 return err 31 } 32 33 repo, tag, err := registry.DockerImage(image).Connect() 34 if err != nil { 35 return err 36 } 37 38 manifest := &manifestV1.Manifest{} 39 err = json.NewDecoder(os.Stdin).Decode(manifest) 40 if err != nil { 41 return errors.Wrap(err, "unmarshal manifest") 42 } 43 44 return repo.PutManifest(tag, manifest) 45 }