everything is now logged to stdout

This commit is contained in:
1e99 2025-04-12 11:10:13 +02:00
parent 22327ce8ce
commit c31ed4ed27
3 changed files with 32 additions and 14 deletions

12
a Normal file
View file

@ -0,0 +1,12 @@
2025/04/12 11:09:47 No "WOLBODGE_ADDRESS" provided, defaulting to ":3000"
2025/04/12 11:09:47 No "WOLBODGE_DEVICE_TYPE" provided, defaulting to "test"
2025/04/12 11:09:47 No "WOLBODGE_STORAGE_TYPE" provided, defaulting to "mem"
2025/04/12 11:09:47 Using device: test
2025/04/12 11:09:47 Using session storage: mem
2025/04/12 11:09:47 Listening on :3000
2025/04/12 11:09:51 No "WOLBODGE_ADDRESS" provided, defaulting to ":3000"
2025/04/12 11:09:51 No "WOLBODGE_DEVICE_TYPE" provided, defaulting to "test"
2025/04/12 11:09:51 No "WOLBODGE_STORAGE_TYPE" provided, defaulting to "mem"
2025/04/12 11:09:51 Using device: test
2025/04/12 11:09:51 Using session storage: mem
2025/04/12 11:09:51 Listening on :3000

24
env.go
View file

@ -11,9 +11,9 @@ import (
"git.1e99.eu/1e99/wolbodge/sessions" "git.1e99.eu/1e99/wolbodge/sessions"
) )
func NewStorage() (sessions.Storage, error) { func NewStorage(logger *log.Logger) (sessions.Storage, error) {
var storageType string var storageType string
Env("WOLBODGE_STORAGE_TYPE", &storageType, "mem") Env("WOLBODGE_STORAGE_TYPE", &storageType, "mem", logger)
switch storageType { switch storageType {
case "mem", "memory": case "mem", "memory":
@ -24,9 +24,9 @@ func NewStorage() (sessions.Storage, error) {
} }
} }
func NewDevice() (devices.Device, error) { func NewDevice(logger *log.Logger) (devices.Device, error) {
var deviceType string var deviceType string
Env("WOLBODGE_DEVICE_TYPE", &deviceType, "test") Env("WOLBODGE_DEVICE_TYPE", &deviceType, "test", logger)
switch deviceType { switch deviceType {
case "test": case "test":
@ -36,9 +36,9 @@ func NewDevice() (devices.Device, error) {
var shell []string var shell []string
var statusCmd string var statusCmd string
var toggleStatusCmd string var toggleStatusCmd string
Env("WOLBODGE_DEVICE_SHELL", &shell, "") Env("WOLBODGE_DEVICE_SHELL", &shell, "", logger)
Env("WOLBODGE_DEVICE_STATUS_COMMAND", &statusCmd, "") Env("WOLBODGE_DEVICE_STATUS_COMMAND", &statusCmd, "", logger)
Env("WOLBODGE_DEVICE_TOGGLE_STATUS_COMMAND", &toggleStatusCmd, "") Env("WOLBODGE_DEVICE_TOGGLE_STATUS_COMMAND", &toggleStatusCmd, "", logger)
return devices.NewCommand(shell, statusCmd, toggleStatusCmd), nil return devices.NewCommand(shell, statusCmd, toggleStatusCmd), nil
@ -47,18 +47,22 @@ func NewDevice() (devices.Device, error) {
} }
} }
func Env(name string, out any, def string) { func Env(name string, out any, def string, logger *log.Logger) {
if logger == nil {
logger = log.Default()
}
raw := os.Getenv(name) raw := os.Getenv(name)
if raw == "" { if raw == "" {
raw = def raw = def
log.Printf("No \"%s\" provided, defaulting to \"%s\"", name, def) logger.Printf("No \"%s\" provided, defaulting to \"%s\"", name, def)
} }
switch value := out.(type) { switch value := out.(type) {
case *int: case *int:
i, err := strconv.ParseInt(raw, 10, 64) i, err := strconv.ParseInt(raw, 10, 64)
if err != nil { if err != nil {
log.Printf("\"%s\" is not a number (\"%s\")", name, raw) logger.Printf("\"%s\" is not a number (\"%s\")", name, raw)
return return
} }

10
main.go
View file

@ -5,6 +5,7 @@ import (
"html/template" "html/template"
"log" "log"
"net/http" "net/http"
"os"
"git.1e99.eu/1e99/wolbodge/devices" "git.1e99.eu/1e99/wolbodge/devices"
"git.1e99.eu/1e99/wolbodge/routes" "git.1e99.eu/1e99/wolbodge/routes"
@ -16,8 +17,10 @@ import (
var embed string var embed string
func Run() error { func Run() error {
logger := log.New(os.Stdout, "", log.LstdFlags)
var address string var address string
Env("WOLBODGE_ADDRESS", &address, ":3000") Env("WOLBODGE_ADDRESS", &address, ":3000", logger)
tmpl := template.New("") tmpl := template.New("")
_, err := tmpl.Parse(embed) _, err := tmpl.Parse(embed)
@ -25,17 +28,16 @@ func Run() error {
return fmt.Errorf("failed to parse template: %w", err) return fmt.Errorf("failed to parse template: %w", err)
} }
device, err := NewDevice() device, err := NewDevice(logger)
if err != nil { if err != nil {
return fmt.Errorf("failed to create device: %w", err) return fmt.Errorf("failed to create device: %w", err)
} }
storage, err := NewStorage() storage, err := NewStorage(logger)
if err != nil { if err != nil {
return fmt.Errorf("failed to create session storage: %w", err) return fmt.Errorf("failed to create session storage: %w", err)
} }
logger := log.Default()
mux := http.NewServeMux() mux := http.NewServeMux()
logger.Printf("Using device: %s", device.String()) logger.Printf("Using device: %s", device.String())