// SPDX-License-Identifier: Unlicense OR MIT package main import ( "fmt" "log" "net/http" "os" "strings" ) func main() { http.HandleFunc("/", vanityHandler) port := os.Getenv("PORT") if port == "" { port = "8080" } log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil)) } // vanityHandler serves git location meta headers for the go tool. func vanityHandler(w http.ResponseWriter, r *http.Request) { if www := "www."; strings.HasPrefix(r.URL.Host, www) { r.URL.Host = r.URL.Host[len(www):] http.Redirect(w, r, r.URL.String(), http.StatusMovedPermanently) return } if r.URL.Query().Get("go-get") == "1" { fmt.Fprintf(w, ` `) return } p := r.URL.Path switch { case p == "/": http.Redirect(w, r, "https://git.sr.ht/~eliasnaur/gio", http.StatusFound) case strings.HasPrefix(p, "/cmd"), strings.HasPrefix(p, "/ui"), strings.HasPrefix(p, "/apps"): http.Redirect(w, r, "https://godoc.org/gioui.org"+p, http.StatusFound) default: http.NotFound(w, r) } }