mirror of
https://github.com/akyaiy/GoSally-mvp.git
synced 2026-01-03 08:12:25 +00:00
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"log/slog"
|
|
"net/http"
|
|
"regexp"
|
|
|
|
"github.com/akyaiy/GoSally-mvp/config"
|
|
gs "github.com/akyaiy/GoSally-mvp/general_server"
|
|
"github.com/akyaiy/GoSally-mvp/logs"
|
|
"github.com/akyaiy/GoSally-mvp/sv1"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
var log *slog.Logger
|
|
var cfg *config.ConfigConf
|
|
|
|
func init() {
|
|
cfg = config.MustLoadConfig()
|
|
|
|
log = logs.SetupLogger(cfg.Mode)
|
|
log = log.With("mode", cfg.Mode)
|
|
|
|
log.Info("Initializing server", slog.String("address", cfg.HTTPServer.Address))
|
|
log.Debug("Server running in debug mode")
|
|
}
|
|
|
|
func main() {
|
|
serverv1 := sv1.InitV1Server(&sv1.HandlerV1InitStruct{
|
|
Log: *logs.SetupLogger(cfg.Mode),
|
|
Config: cfg,
|
|
AllowedCmd: regexp.MustCompile(`^[a-zA-Z0-9]+$`),
|
|
ListAllowedCmd: regexp.MustCompile(`^[a-zA-Z0-9_-]+$`),
|
|
Ver: "v1",
|
|
})
|
|
s := gs.InitGeneral(&gs.GeneralServerInit{
|
|
Log: *logs.SetupLogger(cfg.Mode),
|
|
Config: cfg,
|
|
}, serverv1)
|
|
r := chi.NewRouter()
|
|
r.Route("/{ver}/com", func(r chi.Router) {
|
|
r.Get("/", s.HandleList)
|
|
r.Get("/{cmd}", s.Handle)
|
|
})
|
|
r.NotFound(serverv1.ErrNotFound)
|
|
log.Info("Server started", slog.String("address", cfg.Address))
|
|
http.ListenAndServe(cfg.Address, r)
|
|
}
|