diff options
| author | Jeff Carr <[email protected]> | 2024-10-12 00:17:26 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-10-12 00:17:26 -0500 |
| commit | 5fcb83a1a2387e155ea314af865614b9bf237fce (patch) | |
| tree | f0e16614c3aa9d7852d3a5ac6903e09ccaca119e /http.go | |
| parent | b689239cd3b1471f663f49608fcc8a6feb0a3c8a (diff) | |
the beginning of something
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'http.go')
| -rw-r--r-- | http.go | 90 |
1 files changed, 90 insertions, 0 deletions
@@ -0,0 +1,90 @@ +package main + +import ( + "fmt" + "net/http" + "strings" + + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +// remove '?' part and trailing '/' +func cleanURL(url string) string { + url = "/" + strings.Trim(url, "/") + return url +} + +func okHandler(w http.ResponseWriter, r *http.Request) { + var tmp string + tmp = cleanURL(r.URL.Path) + + log.Info("Got URL:", tmp) + if tmp == "/" { + fmt.Fprintln(w, "OK") + return + } + if tmp == "/me" { + fmt.Fprintln(w, "OK") + return + } + + if tmp == "/vms" { + s := shell.Wget("http://wilddog:2520/vms") + var bytesSplice []byte + bytesSplice = s.Bytes() + fmt.Fprintln(w, string(bytesSplice)) + return + } + + if tmp == "/favicon.ico" { + writeFile(w, "ipv6.png") + return + } + if tmp == "/uptime" { + writeFile(w, "uptime.html") + return + } + + // used for uptime monitor checking (like Kuma) + if tmp == "/uptime" { + writeFile(w, "uptime.html") + return + } + log.Warn("BAD URL =", tmp) + fmt.Fprintln(w, "BAD ZOOT") + // badurl(w, r.URL.String()) + // fmt.Fprintln(w, "BAD", tmp) +} + +func writeFile(w http.ResponseWriter, filename string) { + // fmt.Fprintln(w, "GOT TEST?") + fullname := "resources/" + filename + pfile, err := resources.ReadFile(fullname) + if err != nil { + log.Println("ERROR:", err) + // w.Write(pfile) + return + } + + var repohtml string + repohtml = string(pfile) + if filename == "goReference.svg" { + w.Header().Set("Content-Type", "image/svg+xml") + } + fmt.Fprintln(w, repohtml) + log.Println("writeFile() found internal file:", filename) +} + +// starts and sits waiting for HTTP requests +func startHTTP() { + http.HandleFunc("/", okHandler) + + p := fmt.Sprintf(":%d", argv.Port) + log.Println("Running on port", p) + + err := http.ListenAndServe(p, nil) + if err != nil { + log.Println("Error starting server:", err) + } +} |
