Moonshark/moonshark.go
2025-03-06 21:39:36 -06:00

61 lines
1.6 KiB
Go

package main
import (
"git.sharkk.net/Sky/Moonshark/core/config"
"git.sharkk.net/Sky/Moonshark/core/logger"
"git.sharkk.net/Sky/Moonshark/core/routers"
"git.sharkk.net/Sky/Moonshark/core/utils"
)
func main() {
// Initialize logger
log := logger.New(logger.LevelInfo, true)
defer log.Close()
log.Info("Starting Moonshark server")
// Load configuration from config.lua
cfg, err := config.Load("config.lua")
if err != nil {
log.Warning("Failed to load config.lua: %v", err)
log.Info("Using default configuration")
cfg = config.New()
}
// Get port from config or use default
port := cfg.GetInt("port", 3117)
// Initialize routers
routesDir := cfg.GetString("routes_dir", "./routes")
staticDir := cfg.GetString("static_dir", "./static")
// Ensure the Lua routes directory exists
err = utils.EnsureDir(routesDir)
if err != nil {
log.Fatal("Routes directory doesn't exist, and could not create it. %v", err)
}
// Ensure the static directory exists
err = utils.EnsureDir(staticDir)
if err != nil {
log.Fatal("Static directory doesn't exist, and could not create it. %v", err)
}
// Initialize Lua router for dynamic routes
_, err = routers.NewLuaRouter(routesDir)
if err != nil {
log.Fatal("Failed to initialize Lua router: %v", err)
}
log.Info("Lua router initialized with routes from %s", routesDir)
// Initialize static file router
_, err = routers.NewStaticRouter(staticDir)
if err != nil {
log.Fatal("Failed to initialize static router: %v", err)
}
log.Info("Static router initialized with files from %s", staticDir)
// Output the port number
log.Info("Moonshark server listening on port %d", port)
}