61 lines
1.6 KiB
Go
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)
|
|
}
|