statusz: fix executable sha256
diff --git a/go/statusz/README.md b/go/statusz/README.md
index 4743c55..ea77db9 100644
--- a/go/statusz/README.md
+++ b/go/statusz/README.md
@@ -10,7 +10,7 @@
```go
import (
- _ "github.com/q3k/statusz"
+ _ "code.hackerspace.pl/hscloud/go/statusz"
)
func main() {
@@ -25,7 +25,7 @@
```go
import (
- statusz "github.com/q3k/statusz"
+ "code.hackerspace.pl/hscloud/go/statusz"
)
diff --git a/go/statusz/statusz.go b/go/statusz/statusz.go
index 606d244..6c0fe17 100644
--- a/go/statusz/statusz.go
+++ b/go/statusz/statusz.go
@@ -178,15 +178,23 @@
}
username = fmt.Sprintf("%s (%s)", user.Username, user.Uid)
- f, err := os.Open(os.Args[0])
- if err != nil {
- glog.Fatalf("os.Open(%q): %v", os.Args[0], err)
+ exec, err := os.Executable()
+ if err == nil {
+ f, err := os.Open(exec)
+ if err == nil {
+ h := sha256.New()
+ if _, err := io.Copy(h, f); err != nil {
+ glog.Fatalf("io.Copy: %v", err)
+ }
+ binaryHash = fmt.Sprintf("%x", h.Sum(nil))
+ } else {
+ glog.Errorf("Could not get SHA256 of binary: os.Open(%q): %v", exec, err)
+ binaryHash = "could not read executable"
+ }
+ } else {
+ glog.Errorf("Could not get SHA256 of binary: os.Executable(): %v", err)
+ binaryHash = "could not get executable"
}
- h := sha256.New()
- if _, err := io.Copy(h, f); err != nil {
- glog.Fatalf("io.Copy: %v", err)
- }
- binaryHash = fmt.Sprintf("%x", h.Sum(nil))
if DefaultMux {
http.HandleFunc("/debug/status", StatusHandler)