diff options
Diffstat (limited to 'cmd/web/serve-self.go')
| -rw-r--r-- | cmd/web/serve-self.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/cmd/web/serve-self.go b/cmd/web/serve-self.go new file mode 100644 index 0000000..103fbf1 --- /dev/null +++ b/cmd/web/serve-self.go @@ -0,0 +1,27 @@ +package main + +import ( + "io" + "os" + "net/http" +) + +func serveSelf(w http.ResponseWriter, r *http.Request) { + s, err := os.Executable() + if err != nil { + Logger.Println("While trying to get my executable path: ", err) + http.Error(w, "Internal server error", http.StatusInternalServerError) + return + } + + fh, err := os.Open(s) + if err != nil { + Logger.Println("While opening my own executable for reading: ", err) + http.Error(w, "Internal server error", http.StatusInternalServerError) + return + } + + _, err = io.Copy(w, fh) + fh.Close() + return +} |
