summaryrefslogtreecommitdiff
path: root/server/server.go
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-09-14 19:48:36 +0200
committerewy <ewy0@protonmail.com>2026-09-14 19:48:36 +0200
commit899ef7448222f0d087c194b3379b702f8dd2ff8c (patch)
tree8c2b508bb4d01236c7f582e4eee91fd178d09670 /server/server.go
parentc69e6c0770359e2febafcf487eb21c4aa608c3e9 (diff)
add server and websocket comms
Diffstat (limited to 'server/server.go')
-rw-r--r--server/server.go34
1 files changed, 32 insertions, 2 deletions
diff --git a/server/server.go b/server/server.go
index 8230f87..798bab6 100644
--- a/server/server.go
+++ b/server/server.go
@@ -1,11 +1,41 @@
package server
import (
+ "embed"
"fmt"
- "sakura/data"
+ "github.com/spf13/pflag"
+ "html/template"
+ "net"
+ "net/http"
+ "sakura/cfg"
+ "sakura/server/api"
+ "strconv"
)
+//go:embed web
+var web embed.FS
+
+var tmpl *template.Template
+
func Start() {
+ pflag.Parse()
fmt.Println("Server started")
- fmt.Printf("Characters: %v\n", data.Characters)
+ addr := net.JoinHostPort(*cfg.Host, strconv.Itoa(*cfg.Port))
+ fmt.Printf("Listening on %s\n", addr)
+ var err error
+ tmpl, err = template.ParseFS(web, "web/**.gohtml")
+ http.HandleFunc("/{$}", serveHome)
+ http.HandleFunc(cfg.CreateMethod+" "+cfg.CreatePath, api.GameCreate)
+ http.HandleFunc(cfg.ConnectMethod+" "+cfg.ConnectPath, api.GameConnect)
+ err = http.ListenAndServe(addr, nil)
+ if err != nil {
+ panic(err)
+ }
+}
+
+func serveHome(w http.ResponseWriter, r *http.Request) {
+ err := tmpl.ExecuteTemplate(w, "index.gohtml", nil)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ }
}