From d93959de9f7ffd061dc57bec7c532829f592bf77 Mon Sep 17 00:00:00 2001 From: xengineering Date: Fri, 11 Jun 2021 09:06:56 +0200 Subject: Implement Web Server --- Makefile | 1 + data/html/index.html | 32 ++++++++++++++++++++++++++++++++ src/go.mod | 2 ++ src/go.sum | 2 ++ src/main.go | 1 + src/web.go | 31 +++++++++++++++++++++++++++++++ 6 files changed, 69 insertions(+) create mode 100644 data/html/index.html create mode 100644 src/go.sum create mode 100644 src/web.go diff --git a/Makefile b/Makefile index 76b24c6..3476ee2 100644 --- a/Makefile +++ b/Makefile @@ -18,4 +18,5 @@ install: all make -C src install DESTDIR=$(abspath $(DESTDIR)) install -Dm 644 systemd/birdscan.service $(DESTDIR)$(PREFIX)/lib/systemd/system/birdscan.service install -Dm 644 systemd/birdscan.sysusers $(DESTDIR)$(PREFIX)/lib/sysusers.d/birdscan.conf + install -Dm 644 data/html/index.html $(DESTDIR)$(PREFIX)/share/birdscan/html/index.html diff --git a/data/html/index.html b/data/html/index.html new file mode 100644 index 0000000..af72c46 --- /dev/null +++ b/data/html/index.html @@ -0,0 +1,32 @@ + + + + + + + + + birdscan + + + + + + + + + + + +
+

birdscan

+

A software to take beautiful pictures of birds with a Raspberry Pi Camera.

+
+ + + + 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