gitee.com/quant1x/engine@v1.8.4/cache/cache.go (about) 1 package cache 2 3 import ( 4 "gitee.com/quant1x/engine/config" 5 "gitee.com/quant1x/gox/logger" 6 "gitee.com/quant1x/gox/util/homedir" 7 "os" 8 ) 9 10 const ( 11 // 目录权限 12 cacheDirMode os.FileMode = 0755 13 // 文件权限 14 cacheFileMode os.FileMode = 0644 15 // 文件替换模式, 会用到os.TRUNC 16 cacheReplace = os.O_CREATE | os.O_RDWR | os.O_TRUNC 17 // 更新 18 cacheUpdate = os.O_CREATE | os.O_WRONLY 19 ) 20 21 var ( 22 // 根路径 23 cacheRootPath = "~/.quant1x" 24 // cacheLogPath 日志路径 25 cacheLogPath = cacheRootPath + "/logs" 26 // var 路径 27 cacheVariablePath = cacheRootPath + "/var" 28 ) 29 30 func init() { 31 initCache() 32 } 33 34 func initCache() { 35 // 加载配置文件 36 tmpConfig, found := config.LoadConfig() 37 // 搜索配置文件 38 baseDir := tmpConfig.BaseDir 39 if len(baseDir) > 0 { 40 __path, err := homedir.Expand(baseDir) 41 if err == nil { 42 baseDir = __path 43 } else { 44 logger.Fatalf("%+v", err) 45 } 46 } else { 47 baseDir = cacheRootPath 48 } 49 // 校验配置文件的路径 50 __path, err := homedir.Expand(baseDir) 51 if err != nil { 52 logger.Fatalf("%+v", err) 53 } 54 cacheRootPath = __path 55 // 创建根路径 56 if err := os.MkdirAll(cacheRootPath, cacheDirMode); err != nil { 57 logger.Fatalf("%+v", err) 58 } 59 // 创建日志路径 60 cacheLogPath = cacheRootPath + "/logs" 61 __logsPath, err := homedir.Expand(cacheLogPath) 62 if err != nil { 63 logger.Fatalf("%+v", err) 64 } 65 cacheLogPath = __logsPath 66 if err := os.MkdirAll(cacheLogPath, cacheDirMode); err != nil { 67 logger.Fatalf("%+v", err) 68 } 69 logger.InitLogger(cacheLogPath, logger.INFO) 70 // 创建var路径 71 cacheVariablePath = cacheRootPath + "/var" 72 __varPath, err := homedir.Expand(cacheVariablePath) 73 if err != nil { 74 logger.Fatalf("%+v", err) 75 } 76 cacheVariablePath = __varPath 77 if err := os.MkdirAll(cacheVariablePath, cacheDirMode); err != nil { 78 logger.Fatalf("%+v", err) 79 } 80 // 检查配置文件并加载配置 81 if !found { 82 config.GlobalConfig = config.ReadConfig(GetRootPath()) 83 } else { 84 config.GlobalConfig = tmpConfig 85 } 86 87 // 启动性能分析 88 config.StartPprof() 89 initMiniQmt() 90 } 91 92 // Reset 重置日志记录器 93 func Reset() { 94 initCache() 95 } 96 97 // GetRootPath 获取缓存根路径 98 func GetRootPath() string { 99 return cacheRootPath 100 } 101 102 // GetLoggerPath 获取日志路径 103 func GetLoggerPath() string { 104 return cacheLogPath 105 } 106 107 // GetVariablePath 获取VAR路径 108 func GetVariablePath() string { 109 return cacheVariablePath 110 }