Files
scratch-link4linux/main.go
2024-01-13 14:55:03 +01:00

52 lines
1.0 KiB
Go

package main
import (
"flag"
"net/http"
"os"
"time"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"tinygo.org/x/bluetooth"
"github.com/lucarin91/scratch-link4linux/scratchlink"
)
func setLogger(debug bool) {
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stdout})
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
if debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
} else {
zerolog.SetGlobalLevel(zerolog.InfoLevel)
}
}
func main() {
debug := flag.Bool("debug", false, "sets log level to debug")
flag.Parse()
setLogger(*debug)
var adapter = bluetooth.DefaultAdapter
if err := adapter.Enable(); err != nil {
log.Fatal().Err(err).Msgf("BLE cannot be enabled")
}
http.Handle("/scratch/ble", scratchlink.GetHandler(adapter))
server := &http.Server{
Addr: ":20111",
ReadHeaderTimeout: 3 * time.Second,
}
log.Info().Msgf("Starting scratch server on %q", server.Addr)
err := server.ListenAndServe()
if err != nil {
log.Fatal().Err(err).Msg("server stopped")
}
}