hasshelper/web/server.go
2022-05-08 19:29:58 -05:00

39 lines
911 B
Go

package web
import (
"fmt"
"net/http"
"os"
"github.com/spf13/viper"
"go.uber.org/zap"
)
type configObj struct {
logger *zap.Logger
port int
imageDir string
}
var config = configObj{}
// Run starts up the webserver part of hasshelper. It writes to exitch if
// the webserver ends unexpectedly. Config values will be read from viper.
func Run(rootLogger *zap.Logger, exitch chan bool) {
config.logger = rootLogger.Named("web")
config.port = viper.GetInt("webserver_port")
config.imageDir = viper.GetString("image_dir")
addr := fmt.Sprintf(":%d", config.port)
http.Handle("/", http.FileServer(http.FS(os.DirFS("."))))
var logger = config.logger.Sugar()
logger.Infow("Webserver startup", "port", config.port)
if err := http.ListenAndServe(addr, nil); err != nil {
logger.Errorf("Webserver fatal error: %s", err)
} else {
logger.Info("webserver shutting down")
}
exitch <- true
}