| package distribution |
| |
| import ( |
| "fmt" |
| |
| "github.com/docker/distribution" |
| "github.com/docker/distribution/manifest/schema2" |
| digest "github.com/opencontainers/go-digest" |
| ocispec "github.com/opencontainers/image-spec/specs-go/v1" |
| ) |
| |
| func init() { |
| // TODO: Remove this registration if distribution is included with OCI support |
| |
| ocischemaFunc := func(b []byte) (distribution.Manifest, distribution.Descriptor, error) { |
| m := new(schema2.DeserializedManifest) |
| err := m.UnmarshalJSON(b) |
| if err != nil { |
| return nil, distribution.Descriptor{}, err |
| } |
| |
| dgst := digest.FromBytes(b) |
| return m, distribution.Descriptor{Digest: dgst, Size: int64(len(b)), MediaType: ocispec.MediaTypeImageManifest}, err |
| } |
| err := distribution.RegisterManifestSchema(ocispec.MediaTypeImageManifest, ocischemaFunc) |
| if err != nil { |
| panic(fmt.Sprintf("Unable to register manifest: %s", err)) |
| } |
| } |