+func checkFile(
+ pkgName, fn, fnHash, hasherName string,
+ hasher hash.Hash, digest []byte,
+) bool {
+ expected, err := ioutil.ReadFile(fnHash)
+ if err != nil {
+ log.Fatal(err)
+ }
+ fd, err := os.Open(fn)
+ if err != nil {
+ if os.IsNotExist(err) {
+ return true
+ }
+ log.Fatal(err)
+ }
+ _, err = io.Copy(hasher, bufio.NewReader(fd))
+ fd.Close()
+ if err != nil {
+ log.Fatal(err)
+ }
+ isEqual := bytes.Compare(hasher.Sum(digest[:0]), expected) == 0
+ hasher.Reset()
+ if isEqual {
+ fmt.Println("GOOD", hasherName, pkgName)
+ return true
+ }
+ fmt.Println("BAD", hasherName, pkgName)
+ return false
+}
+