mirror of
https://github.com/containers/skopeo.git
synced 2025-07-07 03:39:10 +00:00
Update for changed PutBlob API
Signed-off-by: Antoine Eiche <lewo@abesis.fr>
This commit is contained in:
parent
b08350db15
commit
aa73bd9d0d
@ -46,7 +46,11 @@ var layersCmd = cli.Command{
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
var blobDigests []digest.Digest
|
type blobDigest struct {
|
||||||
|
digest digest.Digest
|
||||||
|
isConfig bool
|
||||||
|
}
|
||||||
|
var blobDigests []blobDigest
|
||||||
for _, dString := range c.Args().Tail() {
|
for _, dString := range c.Args().Tail() {
|
||||||
if !strings.HasPrefix(dString, "sha256:") {
|
if !strings.HasPrefix(dString, "sha256:") {
|
||||||
dString = "sha256:" + dString
|
dString = "sha256:" + dString
|
||||||
@ -55,7 +59,7 @@ var layersCmd = cli.Command{
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
blobDigests = append(blobDigests, d)
|
blobDigests = append(blobDigests, blobDigest{digest: d, isConfig: false})
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(blobDigests) == 0 {
|
if len(blobDigests) == 0 {
|
||||||
@ -63,13 +67,13 @@ var layersCmd = cli.Command{
|
|||||||
seenLayers := map[digest.Digest]struct{}{}
|
seenLayers := map[digest.Digest]struct{}{}
|
||||||
for _, info := range layers {
|
for _, info := range layers {
|
||||||
if _, ok := seenLayers[info.Digest]; !ok {
|
if _, ok := seenLayers[info.Digest]; !ok {
|
||||||
blobDigests = append(blobDigests, info.Digest)
|
blobDigests = append(blobDigests, blobDigest{digest: info.Digest, isConfig: false})
|
||||||
seenLayers[info.Digest] = struct{}{}
|
seenLayers[info.Digest] = struct{}{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
configInfo := src.ConfigInfo()
|
configInfo := src.ConfigInfo()
|
||||||
if configInfo.Digest != "" {
|
if configInfo.Digest != "" {
|
||||||
blobDigests = append(blobDigests, configInfo.Digest)
|
blobDigests = append(blobDigests, blobDigest{digest: configInfo.Digest, isConfig: true})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,12 +96,12 @@ var layersCmd = cli.Command{
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
for _, digest := range blobDigests {
|
for _, bd := range blobDigests {
|
||||||
r, blobSize, err := rawSource.GetBlob(types.BlobInfo{Digest: digest, Size: -1})
|
r, blobSize, err := rawSource.GetBlob(types.BlobInfo{Digest: bd.digest, Size: -1})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := dest.PutBlob(r, types.BlobInfo{Digest: digest, Size: blobSize}); err != nil {
|
if _, err := dest.PutBlob(r, types.BlobInfo{Digest: bd.digest, Size: blobSize}, bd.isConfig); err != nil {
|
||||||
if closeErr := r.Close(); closeErr != nil {
|
if closeErr := r.Close(); closeErr != nil {
|
||||||
return errors.Wrapf(err, " (close error: %v)", closeErr)
|
return errors.Wrapf(err, " (close error: %v)", closeErr)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user