mirror of
https://github.com/containers/skopeo.git
synced 2025-09-23 02:48:26 +00:00
Update non-module dependencies
Dependabot was apparently not picking these up (and several haven't had a release for a long time anyway). Also move from github.com/go-check/check to its newly declared (and go.mod-enforced) name gopkg.in/check.v1. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
47
vendor/github.com/opencontainers/image-tools/image/autodetect.go
generated
vendored
47
vendor/github.com/opencontainers/image-tools/image/autodetect.go
generated
vendored
@@ -15,13 +15,11 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"github.com/opencontainers/image-spec/schema"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
@@ -47,7 +45,7 @@ func Autodetect(path string) (string, error) {
|
||||
return TypeImageLayout, nil
|
||||
}
|
||||
|
||||
f, err := os.Open(path)
|
||||
f, err := os.Open(path) // nolint: errcheck, gosec
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "unable to open file") // os.Open includes the filename
|
||||
}
|
||||
@@ -65,48 +63,7 @@ func Autodetect(path string) (string, error) {
|
||||
return TypeImage, nil
|
||||
case "application/zip":
|
||||
return TypeImageZip, nil
|
||||
|
||||
case "text/plain; charset=utf-8":
|
||||
// might be a JSON file, will be handled below
|
||||
|
||||
default:
|
||||
return "", errors.New("unknown file type")
|
||||
}
|
||||
|
||||
if _, err := f.Seek(0, io.SeekStart); err != nil {
|
||||
return "", errors.Wrap(err, "unable to seek")
|
||||
}
|
||||
|
||||
header := struct {
|
||||
SchemaVersion int `json:"schemaVersion"`
|
||||
MediaType string `json:"mediaType"`
|
||||
Config interface{} `json:"config"`
|
||||
}{}
|
||||
|
||||
if err := json.NewDecoder(f).Decode(&header); err != nil {
|
||||
if _, errSeek := f.Seek(0, io.SeekStart); errSeek != nil {
|
||||
return "", errors.Wrap(err, "unable to seek")
|
||||
}
|
||||
|
||||
e := errors.Wrap(
|
||||
schema.WrapSyntaxError(f, err),
|
||||
"unable to parse JSON",
|
||||
)
|
||||
|
||||
return "", e
|
||||
}
|
||||
|
||||
switch {
|
||||
case header.MediaType == string(schema.ValidatorMediaTypeManifest):
|
||||
return TypeManifest, nil
|
||||
|
||||
case header.MediaType == string(schema.ValidatorMediaTypeImageIndex):
|
||||
return TypeImageIndex, nil
|
||||
|
||||
case header.MediaType == "" && header.SchemaVersion == 0 && header.Config != nil:
|
||||
// config files don't have mediaType/schemaVersion header
|
||||
return TypeConfig, nil
|
||||
}
|
||||
|
||||
return "", errors.New("unknown media type")
|
||||
return "", errors.New("unknown file type")
|
||||
}
|
||||
|
Reference in New Issue
Block a user