您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ergonomadic.go 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "github.com/jlatt/ergonomadic/irc"
  6. "log"
  7. "os"
  8. "path/filepath"
  9. )
  10. func main() {
  11. conf := flag.String("conf", "ergonomadic.conf", "ergonomadic config file")
  12. initdb := flag.Bool("initdb", false, "initialize database")
  13. passwd := flag.String("genpasswd", "", "bcrypt a password")
  14. flag.Parse()
  15. if *passwd != "" {
  16. encoded, err := irc.GenerateEncodedPassword(*passwd)
  17. if err != nil {
  18. log.Fatal("encoding error: ", err)
  19. }
  20. fmt.Println(encoded)
  21. return
  22. }
  23. config, err := irc.LoadConfig(*conf)
  24. if err != nil {
  25. log.Fatal("error loading config: ", err)
  26. }
  27. err = os.Chdir(filepath.Dir(*conf))
  28. if err != nil {
  29. log.Fatal("chdir error: ", err)
  30. }
  31. if *initdb {
  32. irc.InitDB(config.Server.Database)
  33. log.Println("database initialized: " + config.Server.Database)
  34. return
  35. }
  36. // TODO move to data structures
  37. irc.DEBUG_NET = config.Debug.Net
  38. irc.DEBUG_CLIENT = config.Debug.Client
  39. irc.DEBUG_CHANNEL = config.Debug.Channel
  40. irc.DEBUG_SERVER = config.Debug.Server
  41. log.Println(irc.SEM_VER, "running")
  42. irc.NewServer(config).Run()
  43. }