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) }