From d93959de9f7ffd061dc57bec7c532829f592bf77 Mon Sep 17 00:00:00 2001
From: xengineering <mail2xengineering@protonmail.com>
Date: Fri, 11 Jun 2021 09:06:56 +0200
Subject: Implement Web Server

---
 src/go.mod  |  2 ++
 src/go.sum  |  2 ++
 src/main.go |  1 +
 src/web.go  | 31 +++++++++++++++++++++++++++++++
 4 files changed, 36 insertions(+)
 create mode 100644 src/go.sum
 create mode 100644 src/web.go

(limited to 'src')

diff --git a/src/go.mod b/src/go.mod
index 33a7a6a..06d83ed 100644
--- a/src/go.mod
+++ b/src/go.mod
@@ -1,3 +1,5 @@
 module src.xengineering.eu/xengineering/birdscan
 
 go 1.16
+
+require github.com/go-chi/chi/v5 v5.0.3 // indirect
diff --git a/src/go.sum b/src/go.sum
new file mode 100644
index 0000000..e92da3f
--- /dev/null
+++ b/src/go.sum
@@ -0,0 +1,2 @@
+github.com/go-chi/chi/v5 v5.0.3 h1:khYQBdPivkYG1s1TAzDQG1f6eX4kD2TItYVZexL5rS4=
+github.com/go-chi/chi/v5 v5.0.3/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
diff --git a/src/main.go b/src/main.go
index 7b693ee..5de338a 100644
--- a/src/main.go
+++ b/src/main.go
@@ -9,6 +9,7 @@ import (
 
 func main() {
 	log.Println("Starting birdscan")
+	go runServer()
 	for {
 		time.Sleep(1 * time.Second)
 	}
diff --git a/src/web.go b/src/web.go
new file mode 100644
index 0000000..c0732ad
--- /dev/null
+++ b/src/web.go
@@ -0,0 +1,31 @@
+// vim: shiftwidth=4 tabstop=4 noexpandtab
+
+package main
+
+import (
+	"fmt"
+	"log"
+	"net/http"
+
+	"github.com/go-chi/chi/v5"
+	"github.com/go-chi/chi/v5/middleware"
+)
+
+const (
+	APP_DATA = "/usr/share/birdscan"
+)
+
+func runServer() {
+	router := chi.NewRouter()
+	router.Use(middleware.Logger)
+
+	router.Get("/", indexHandler)
+
+	log.Println("Binding to 'http://" + "127.0.0.1" + ":" + "8080" + "'")
+	log.Fatal(http.ListenAndServe("127.0.0.1" + ":" + "8080", router))
+}
+
+func indexHandler(w http.ResponseWriter, r *http.Request) {
+	http.ServeFile(w, r, fmt.Sprintf("%s/html/index.html", APP_DATA))
+}
+
-- 
cgit v1.2.3-70-g09d2