in cdnet/scripts/process-cltzip.go [21:79]
func main() {
// Find and hash commandline tools DLL inside the archive
var dllPath = ""
var dllHash [32]byte
callback := func(path string, info os.FileInfo, stream io.Reader) {
if info.IsDir() {
return
}
if !dllPathRegex.MatchString(path) {
return
}
if dllPath != "" {
log.Fatalf("Found multiple matches for `%s` inside clt.zip: '%s', '%s'.", DllPathPattern, dllPath, path)
}
dllPath = path
err := (error)(nil)
dllHash, err = utils.GetSha256(stream)
if err != nil {
log.Fatalf("sha256 error: %s", err)
}
}
stat, err := os.Stat("clt.zip")
if err != nil {
log.Fatal(err)
}
if stat.Size() == 0 {
// Assume someone does not have clt.zip and just `touch`-ed it to proceed with the build.
_, err = fmt.Fprintln(os.Stderr, "clt.zip is a 0-byte file, will generate mock hashsum.")
if err != nil {
log.Fatal(err)
}
} else {
err = utils.WalkZipArchive("clt.zip", callback)
if err != nil {
log.Fatal(err)
}
if dllPath == "" {
log.Fatalf("Could not find a file matching `%s` DLL inside clt.zip.", DllPathPattern)
}
}
err = os.WriteFile("clt.sha256.bin", dllHash[:], 0666)
if err != nil {
log.Fatal(err)
}
_, err = fmt.Fprintf(os.Stderr, "sha256 of clt.zip/%s: %s\n", dllPath, hex.EncodeToString(dllHash[:]))
if err != nil {
log.Fatal(err)
}
err = os.WriteFile("clt.path.txt", []byte(dllPath), 0666)
if err != nil {
log.Fatal(err)
}
}