// API doc: https://wiki.summercamp.local/display/PIN/Pinguin+server+API package main import ( "log" "net/http" "os" "runtime/pprof" "strconv" "battlecamp-go-server/flag" "battlecamp-go-server/games" ) var currentGames games.GameServer = games.New() func main() { initLogging() log.Println("Game server version 0.1") initCliFlags() log.Fatal(http.ListenAndServe(":"+strconv.Itoa(*flag.Port), newUrlRouter())) } func initLogging() { logFile, err := os.Create("server.log") if err == nil { log.SetOutput(logFile) } else { log.Println("ERROR: Cannot open log file, using console.") log.Printf("%v=n", err) } } func initCliFlags() { flag.ParseFlags() if *flag.CpuProfile != "" { f, err := os.Create(*flag.CpuProfile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() } }