package main import ( "log" "os" "path" ) var ( CFG *Config LOG *log.Logger USERS *UserManager ) func Singletons() { // Initialize Config CFG = LoadConfig() // Check Paths (Data, Messages, Files, and Logs) if !Exists(CFG.DataPath) { err := os.Mkdir(CFG.DataPath, os.ModeDir) if err != nil { panic("init >> mkdir data ('" + CFG.DataPath + "') >> " + err.Error()) } } if !Exists(CFG.MessagePath) { err := os.Mkdir(CFG.MessagePath, os.ModeDir) if err != nil { panic("init >> mkdir msgs ('" + CFG.MessagePath + "') >> " + err.Error()) } } if !Exists(CFG.FilePath) { err := os.Mkdir(CFG.FilePath, os.ModeDir) if err != nil { panic("init >> mkdir files ('" + CFG.FilePath + "') >> " + err.Error()) } } if !Exists(CFG.LogPath) { err := os.Mkdir(CFG.LogPath, os.ModeDir) if err != nil { panic("init >> mkdir logs ('" + CFG.LogPath + "') >> " + err.Error()) } } // Establish connection to main Log file ('logs/lunar_hub.log') log_path := path.Join(CFG.LogPath, "lunar_hub.log") f, err := os.OpenFile(log_path, os.O_CREATE|os.O_APPEND|os.O_RDWR|os.O_SYNC, 0666) if err != nil { panic("init >> opening main log ('" + log_path + "') >> " + err.Error()) } LOG = log.New(f, "", log.Ldate|log.Ltime|log.Lshortfile) LOG.Println("") }