diff --git a/go.mod b/go.mod index fa851b4..8da3d05 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,3 @@ -module github.com/gopatchy/p-fc-run +module github.com/gopatchy/p go 1.22 - -require github.com/gofrs/uuid v4.4.0+incompatible diff --git a/go.sum b/go.sum deleted file mode 100644 index c0ad687..0000000 --- a/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= -github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= diff --git a/main.go b/main.go index 854063c..81764a3 100644 --- a/main.go +++ b/main.go @@ -6,101 +6,20 @@ import ( "os" "strconv" "strings" - - "github.com/gofrs/uuid" ) -func logRequest(r *http.Request) { - uri := r.RequestURI - method := r.Method - fmt.Println("Got request!", method, uri) -} - func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - logRequest(r) fmt.Fprintf(w, "Hello! you've requested %s\n", r.URL.Path) }) - http.HandleFunc("/cached", func(w http.ResponseWriter, r *http.Request) { - logRequest(r) - maxAgeParams, ok := r.URL.Query()["max-age"] - if ok && len(maxAgeParams) > 0 { - maxAge, _ := strconv.Atoi(maxAgeParams[0]) - w.Header().Set("Cache-Control", fmt.Sprintf("max-age=%d", maxAge)) - } - responseHeaderParams, ok := r.URL.Query()["headers"] - if ok { - for _, header := range responseHeaderParams { - h := strings.Split(header, ":") - w.Header().Set(h[0], strings.TrimSpace(h[1])) - } - } - statusCodeParams, ok := r.URL.Query()["status"] - if ok { - statusCode, _ := strconv.Atoi(statusCodeParams[0]) - w.WriteHeader(statusCode) - } - requestID := uuid.Must(uuid.NewV4()) - fmt.Fprint(w, requestID.String()) - }) - - http.HandleFunc("/headers", func(w http.ResponseWriter, r *http.Request) { - logRequest(r) - keys, ok := r.URL.Query()["key"] - if ok && len(keys) > 0 { - fmt.Fprint(w, r.Header.Get(keys[0])) - return - } - headers := []string{} - headers = append(headers, fmt.Sprintf("host=%s", r.Host)) - for key, values := range r.Header { - headers = append(headers, fmt.Sprintf("%s=%s", key, strings.Join(values, ","))) - } - fmt.Fprint(w, strings.Join(headers, "\n")) - }) - - http.HandleFunc("/env", func(w http.ResponseWriter, r *http.Request) { - logRequest(r) - keys, ok := r.URL.Query()["key"] - if ok && len(keys) > 0 { - fmt.Fprint(w, os.Getenv(keys[0])) - return - } - envs := []string{} - envs = append(envs, os.Environ()...) - fmt.Fprint(w, strings.Join(envs, "\n")) - }) - - http.HandleFunc("/status", func(w http.ResponseWriter, r *http.Request) { - logRequest(r) - codeParams, ok := r.URL.Query()["code"] - if ok && len(codeParams) > 0 { - statusCode, _ := strconv.Atoi(codeParams[0]) - if statusCode >= 200 && statusCode < 600 { - w.WriteHeader(statusCode) - } - } - requestID := uuid.Must(uuid.NewV4()) - fmt.Fprint(w, requestID.String()) - }) + http.Handle("/", http.FileServer(http.Dir("./static"))) port := os.Getenv("PORT") if port == "" { port = "80" } - for _, encodedRoute := range strings.Split(os.Getenv("ROUTES"), ",") { - if encodedRoute == "" { - continue - } - pathAndBody := strings.SplitN(encodedRoute, "=", 2) - path, body := pathAndBody[0], pathAndBody[1] - http.HandleFunc("/"+path, func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, body) - }) - } - bindAddr := fmt.Sprintf(":%s", port) fmt.Printf("==> Server listening at %s 🚀\n", bindAddr)