miniwol/web/web.go

56 lines
1.1 KiB
Go
Raw Normal View History

2022-02-17 12:31:01 +00:00
package web
import (
"embed"
"html/template"
"io/fs"
"log"
"miniwol/config"
"net/http"
)
//go:embed template/*
var templateFS embed.FS
var pageTemplate *template.Template
var loginTemplate *template.Template
var deviceTemplate *template.Template
//go:embed public
var publicFS embed.FS
var fileServer http.Handler
func init() {
var err error
pageTemplate, err = template.ParseFS(templateFS, "template/page.html.tmpl")
if err != nil {
panic(err)
}
loginTemplate, err = template.ParseFS(templateFS, "template/login.html.tmpl")
if err != nil {
panic(err)
}
deviceTemplate, err = template.ParseFS(templateFS, "template/device.html.tmpl")
if err != nil {
panic(err)
}
// Static file handler
staticContent, err := fs.Sub(publicFS, "public")
if err != nil {
panic(err)
}
fileServer = http.FileServer(http.FS(staticContent))
}
func Run() error {
http.HandleFunc("/auth", auth)
http.HandleFunc("/deauth", deauth)
http.HandleFunc("/device", device)
http.HandleFunc("/wake", wake)
http.HandleFunc("/", index)
log.Println("Starting Webserver on", config.Config.Server)
return http.ListenAndServe(config.Config.Server, nil)
}