singletons.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "path"
  6. )
  7. var (
  8. CFG *Config
  9. LOG *log.Logger
  10. USERS *UserManager
  11. )
  12. func Singletons() {
  13. // Initialize Config
  14. CFG = LoadConfig()
  15. // Check Paths (Data, Messages, Files, and Logs)
  16. if !Exists(CFG.DataPath) {
  17. err := os.Mkdir(CFG.DataPath, os.ModeDir)
  18. if err != nil {
  19. panic("init >> mkdir data ('" + CFG.DataPath + "') >> " + err.Error())
  20. }
  21. }
  22. if !Exists(CFG.MessagePath) {
  23. err := os.Mkdir(CFG.MessagePath, os.ModeDir)
  24. if err != nil {
  25. panic("init >> mkdir msgs ('" + CFG.MessagePath + "') >> " + err.Error())
  26. }
  27. }
  28. if !Exists(CFG.FilePath) {
  29. err := os.Mkdir(CFG.FilePath, os.ModeDir)
  30. if err != nil {
  31. panic("init >> mkdir files ('" + CFG.FilePath + "') >> " + err.Error())
  32. }
  33. }
  34. if !Exists(CFG.LogPath) {
  35. err := os.Mkdir(CFG.LogPath, os.ModeDir)
  36. if err != nil {
  37. panic("init >> mkdir logs ('" + CFG.LogPath + "') >> " + err.Error())
  38. }
  39. }
  40. // Establish connection to main Log file ('logs/lunar_hub.log')
  41. log_path := path.Join(CFG.LogPath, "lunar_hub.log")
  42. f, err := os.OpenFile(log_path, os.O_CREATE|os.O_APPEND|os.O_RDWR|os.O_SYNC, 0666)
  43. if err != nil {
  44. panic("init >> opening main log ('" + log_path + "') >> " + err.Error())
  45. }
  46. LOG = log.New(f, "", log.Ldate|log.Ltime|log.Lshortfile)
  47. LOG.Println("")
  48. }