package main import ( "fmt" "log" "net/http" "os" "os/exec" ) func handler(w http.ResponseWriter, r *http.Request) { cmd := exec.CommandContext(r.Context(), "Rscript", "HelloWorld.R") cmd.Stderr = os.Stderr out, err := cmd.Output() if err != nil { w.WriteHeader(500) } w.Write(out) } func main() { http.HandleFunc("/", handler) port := os.Getenv("PORT") if port == "" { port = "8080" } log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil)) }