diff --git a/hash-binary.go b/hash-binary.go index aaf3a24e1..2344a4c4e 100644 --- a/hash-binary.go +++ b/hash-binary.go @@ -4,24 +4,30 @@ import ( "fmt" "io" "os" + "os/exec" "crypto/md5" ) -// mustHashBinarySelf computes MD5SUM of a binary file on disk +// hashBinary computes MD5SUM of a binary file on disk func hashBinary(progName string) (string, error) { - h := md5.New() + path, err := exec.LookPath(progName) + if err != nil { + return "", err + } + + m := md5.New() - file, err := os.Open(progName) // For read access. + file, err := os.Open(path) // For read access. if err != nil { return "", err } - io.Copy(h, file) - return fmt.Sprintf("%x", h.Sum(nil)), nil + io.Copy(m, file) + return fmt.Sprintf("%x", m.Sum(nil)), nil } -// mustHashBinarySelf computes MD5SUM of its binary file on disk +// mustHashBinarySelf masks any error returned by hashBinary func mustHashBinarySelf() string { hash, _ := hashBinary(os.Args[0]) return hash