main.go 783 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // API doc: https://wiki.summercamp.local/display/PIN/Pinguin+server+API
  2. package main
  3. import (
  4. "log"
  5. "os"
  6. "runtime/pprof"
  7. "battlecamp-go-server/flag"
  8. "battlecamp-go-server/gameserver"
  9. )
  10. var gameServer gameserver.GameServer = gameserver.New()
  11. func main() {
  12. initLogging()
  13. log.Println("Game server version 0.1")
  14. initCliFlags()
  15. gameServer.Serve()
  16. }
  17. func initLogging() {
  18. logFile, err := os.Create("server.log")
  19. if err == nil {
  20. log.SetOutput(logFile)
  21. } else {
  22. log.Println("ERROR: Cannot open log file, using console.")
  23. log.Printf("%v=n", err)
  24. }
  25. }
  26. func initCliFlags() {
  27. flag.ParseFlags()
  28. if *flag.CpuProfile != "" {
  29. f, err := os.Create(*flag.CpuProfile)
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. pprof.StartCPUProfile(f)
  34. defer pprof.StopCPUProfile()
  35. }
  36. }