mirror of
https://github.com/containers/skopeo.git
synced 2025-09-15 14:30:58 +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:
86
vendor/github.com/opencontainers/image-tools/image/walker.go
generated
vendored
86
vendor/github.com/opencontainers/image-tools/image/walker.go
generated
vendored
@@ -34,6 +34,8 @@ var (
|
||||
// walkFunc is a function type that gets called for each file or directory visited by the Walker.
|
||||
type walkFunc func(path string, _ os.FileInfo, _ io.Reader) error
|
||||
|
||||
type findFunc func(path string, r io.Reader) error
|
||||
|
||||
// walker is the interface that defines how to access a given archival format
|
||||
type walker interface {
|
||||
|
||||
@@ -43,6 +45,9 @@ type walker interface {
|
||||
// get will copy an arbitrary blob, defined by desc, in to dst. returns
|
||||
// the number of bytes copied on success.
|
||||
get(desc v1.Descriptor, dst io.Writer) (int64, error)
|
||||
|
||||
// find calls findFunc for handling content of path
|
||||
find(path string, ff findFunc) error
|
||||
}
|
||||
|
||||
// tarWalker exposes access to image layouts in a tar file.
|
||||
@@ -120,6 +125,34 @@ func (w *tarWalker) get(desc v1.Descriptor, dst io.Writer) (int64, error) {
|
||||
return bytes, nil
|
||||
}
|
||||
|
||||
func (w *tarWalker) find(path string, ff findFunc) error {
|
||||
done := false
|
||||
|
||||
f := func(relpath string, info os.FileInfo, rdr io.Reader) error {
|
||||
var err error
|
||||
if done {
|
||||
return nil
|
||||
}
|
||||
|
||||
if filepath.Clean(relpath) == path && !info.IsDir() {
|
||||
if err = ff(relpath, rdr); err != nil {
|
||||
return err
|
||||
}
|
||||
done = true
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := w.walk(f); err != nil {
|
||||
return errors.Wrapf(err, "find failed: unable to walk")
|
||||
}
|
||||
if !done {
|
||||
return os.ErrNotExist
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type eofReader struct{}
|
||||
|
||||
func (eofReader) Read(_ []byte) (int, error) {
|
||||
@@ -153,7 +186,7 @@ func (w *pathWalker) walk(f walkFunc) error {
|
||||
return f(rel, info, eofReader{})
|
||||
}
|
||||
|
||||
file, err := os.Open(path)
|
||||
file, err := os.Open(path) // nolint: errcheck, gosec
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "unable to open file") // os.Open includes the path
|
||||
}
|
||||
@@ -175,7 +208,7 @@ func (w *pathWalker) get(desc v1.Descriptor, dst io.Writer) (int64, error) {
|
||||
return 0, fmt.Errorf("object is dir")
|
||||
}
|
||||
|
||||
fp, err := os.Open(name)
|
||||
fp, err := os.Open(name) // nolint: errcheck, gosec
|
||||
if err != nil {
|
||||
return 0, errors.Wrapf(err, "get failed")
|
||||
}
|
||||
@@ -188,6 +221,27 @@ func (w *pathWalker) get(desc v1.Descriptor, dst io.Writer) (int64, error) {
|
||||
return nbytes, nil
|
||||
}
|
||||
|
||||
func (w *pathWalker) find(path string, ff findFunc) error {
|
||||
name := filepath.Join(w.root, path)
|
||||
|
||||
info, err := os.Stat(name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if info.IsDir() {
|
||||
return fmt.Errorf("object is dir")
|
||||
}
|
||||
|
||||
file, err := os.Open(name) // nolint: errcheck, gosec
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "unable to open file") // os.Open includes the path
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
return ff(name, file)
|
||||
}
|
||||
|
||||
type zipWalker struct {
|
||||
fileName string
|
||||
}
|
||||
@@ -249,3 +303,31 @@ func (w *zipWalker) get(desc v1.Descriptor, dst io.Writer) (int64, error) {
|
||||
|
||||
return bytes, nil
|
||||
}
|
||||
|
||||
func (w *zipWalker) find(path string, ff findFunc) error {
|
||||
done := false
|
||||
|
||||
f := func(relpath string, info os.FileInfo, rdr io.Reader) error {
|
||||
var err error
|
||||
if done {
|
||||
return nil
|
||||
}
|
||||
|
||||
if filepath.Clean(relpath) == path && !info.IsDir() {
|
||||
if err = ff(relpath, rdr); err != nil {
|
||||
return err
|
||||
}
|
||||
done = true
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := w.walk(f); err != nil {
|
||||
return errors.Wrapf(err, "find failed: unable to walk")
|
||||
}
|
||||
if !done {
|
||||
return os.ErrNotExist
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user