Changed `matcher.Matches(file)` to `matcher.MatchesOrParentMatches(file)`:
cli/command/image/build/context.go:95:9: SA1019: matcher.Matches is deprecated: This implementation is buggy (it only checks a single parent dir against the pattern) and will be removed soon. Use either MatchesOrParentMatches or MatchesUsingParentResults instead. (staticcheck)
return matcher.Matches(file)
^
And updated a test to match the JSON omitting empty RootFS.Type fields (in
practice, this field should never be empty in real situations, and always
be "layer"). Changed the test to use subtests to easier find which case
is failing.
full diff: https://github.com/docker/docker/compare/343665850e3a...83b51522df43
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
45 lines
1.4 KiB
Go
45 lines
1.4 KiB
Go
//go:build !windows
|
|
// +build !windows
|
|
|
|
package archive // import "github.com/docker/docker/pkg/archive"
|
|
|
|
import (
|
|
"os"
|
|
"syscall"
|
|
|
|
"github.com/docker/docker/pkg/system"
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func statDifferent(oldStat *system.StatT, newStat *system.StatT) bool {
|
|
// Don't look at size for dirs, its not a good measure of change
|
|
if oldStat.Mode() != newStat.Mode() ||
|
|
oldStat.UID() != newStat.UID() ||
|
|
oldStat.GID() != newStat.GID() ||
|
|
oldStat.Rdev() != newStat.Rdev() ||
|
|
// Don't look at size or modification time for dirs, its not a good
|
|
// measure of change. See https://github.com/moby/moby/issues/9874
|
|
// for a description of the issue with modification time, and
|
|
// https://github.com/moby/moby/pull/11422 for the change.
|
|
// (Note that in the Windows implementation of this function,
|
|
// modification time IS taken as a change). See
|
|
// https://github.com/moby/moby/pull/37982 for more information.
|
|
(oldStat.Mode()&unix.S_IFDIR != unix.S_IFDIR &&
|
|
(!sameFsTimeSpec(oldStat.Mtim(), newStat.Mtim()) || (oldStat.Size() != newStat.Size()))) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (info *FileInfo) isDir() bool {
|
|
return info.parent == nil || info.stat.Mode()&unix.S_IFDIR != 0
|
|
}
|
|
|
|
func getIno(fi os.FileInfo) uint64 {
|
|
return fi.Sys().(*syscall.Stat_t).Ino
|
|
}
|
|
|
|
func hasHardlinks(fi os.FileInfo) bool {
|
|
return fi.Sys().(*syscall.Stat_t).Nlink > 1
|
|
}
|