in versioning/scripts/dockerfiles/main.go [181:228]
func verifyCopiedFiles(version versions.Version, templateDir string) (failureCount int) {
failureCount = 0
findFilesToCopy(templateDir, func(path string, sourceFileInfo os.FileInfo) {
failureCount++
source := filepath.Join(templateDir, path)
target := filepath.Join(version.Dir, path)
targetFileInfo, err := os.Stat(target)
if err != nil {
log.Printf("%s is expected but cannot be stat'ed", target)
log.Printf("Please, check accessability of %s", source)
return
}
// Check mode for owner only.
sourcePerm := os.FileMode(sourceFileInfo.Mode().Perm() & 0700)
targetPerm := os.FileMode(targetFileInfo.Mode().Perm() & 0700)
if sourcePerm != targetPerm {
log.Printf("%s has wrong file mode %v, expected %v", target, targetPerm, sourcePerm)
return
}
expected, err := ioutil.ReadFile(source)
check(err)
actual, err := ioutil.ReadFile(filepath.Join(version.Dir, path))
if err != nil {
log.Printf("%s is expected but cannot be read", target)
return
}
if !reflect.DeepEqual(expected, actual) {
log.Printf("%s content is different from its template", target)
return
}
log.Printf("%s: OK", target)
failureCount--
})
if failureCount == 0 {
log.Print("Copied files verification completed: PASSED")
} else {
log.Print("Copied files verification completed: FAILED")
}
return
}