Refactor to use ~/.config/r2mod-go

This commit is contained in:
endigma 2021-01-29 16:42:45 -04:00
parent 744a32f5a5
commit 0866620ab0
4 changed files with 20 additions and 16 deletions

View File

@ -47,16 +47,20 @@ type Version struct {
// InitAPI stores the API in an object when needed. // InitAPI stores the API in an object when needed.
func InitAPI() { func InitAPI() {
if CheckAPICache() != 0 {
UpdateAPICache()
}
PkgList = UnpackAPI() PkgList = UnpackAPI()
} }
// CheckAPICache checks if the cached json is expired // CheckAPICache checks if the cached json is expired
func CheckAPICache() int { func CheckAPICache() int {
if !utils.PathExists(utils.SystemInfo.TmpDir + "/pkg.json") { if !utils.PathExists(utils.SystemInfo.ProgDir + "/pkg.json") {
return 1 return 1
} }
info, err := os.Stat(utils.SystemInfo.TmpDir + "/pkg.json") info, err := os.Stat(utils.SystemInfo.ProgDir + "/pkg.json")
utils.CheckErr(err) utils.CheckErr(err)
lastModTime := info.ModTime() lastModTime := info.ModTime()
@ -73,13 +77,13 @@ func CheckAPICache() int {
func UpdateAPICache() { func UpdateAPICache() {
apiURL := "https://thunderstore.io/api/v1/package/" apiURL := "https://thunderstore.io/api/v1/package/"
err := utils.DownloadFile(utils.SystemInfo.TmpDir+"/pkg.json", apiURL) err := utils.DownloadFile(utils.SystemInfo.ProgDir+"/pkg.json", apiURL)
utils.CheckErr(err) utils.CheckErr(err)
} }
// UnpackAPI stores the API cache as an object for later use. // UnpackAPI stores the API cache as an object for later use.
func UnpackAPI() []Mod { func UnpackAPI() []Mod {
pkgFile, err := os.Open(utils.SystemInfo.TmpDir + "/pkg.json") pkgFile, err := os.Open(utils.SystemInfo.ProgDir + "/pkg.json")
utils.CheckErr(err) utils.CheckErr(err)
defer pkgFile.Close() defer pkgFile.Close()

View File

@ -51,7 +51,7 @@ func removeMod(pkg string) {
func main() { func main() {
logFile, err := os.OpenFile(utils.SystemInfo.TmpDir+"/r2mod-go.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) logFile, err := os.OpenFile(utils.SystemInfo.ProgDir+"/r2mod-go.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
utils.CheckErr(err) utils.CheckErr(err)
defer logFile.Close() defer logFile.Close()

View File

@ -30,7 +30,7 @@ func DownloadMod(depString string) (int, string) {
mod := api.GetModData(depString) mod := api.GetModData(depString)
downloadURL := mod.Versions[0].DownloadURL downloadURL := mod.Versions[0].DownloadURL
modName := sysinfo.TmpDir + "/dl/" + depString + ".zip" modName := sysinfo.ProgDir + "/dl/" + depString + ".zip"
modVersion := mod.Versions[0].VersionNumber modVersion := mod.Versions[0].VersionNumber
modFolder := sysinfo.PluginDir + "/" + depString + "-" + modVersion modFolder := sysinfo.PluginDir + "/" + depString + "-" + modVersion

View File

@ -25,7 +25,7 @@ type SysInfo struct {
BepinDir string BepinDir string
PluginDir string PluginDir string
ConfigDir string ConfigDir string
TmpDir string ProgDir string
} }
// CheckErr checks for an error, prints if it happened // CheckErr checks for an error, prints if it happened
@ -81,28 +81,28 @@ func GetSysInfo() SysInfo {
BepinDir: gameDir + "/BepInEx", BepinDir: gameDir + "/BepInEx",
ConfigDir: gameDir + "/BepInEx/config", ConfigDir: gameDir + "/BepInEx/config",
PluginDir: gameDir + "/BepInEx/plugins", PluginDir: gameDir + "/BepInEx/plugins",
TmpDir: "/tmp/r2mod-go", ProgDir: homeDir + "/.config/r2mod-go",
} }
if !PathExists(SystemInfo.TmpDir) { if !PathExists(SystemInfo.ProgDir) {
log.Println("temp directory does not exist; creating...") log.Println("temp directory does not exist; creating...")
err := os.Mkdir(SystemInfo.TmpDir, 0755) err := os.Mkdir(SystemInfo.ProgDir, 0755)
CheckErr(err) CheckErr(err)
} }
if !PathExists(SystemInfo.TmpDir + "/dl") { if !PathExists(SystemInfo.ProgDir + "/dl") {
log.Println("temp dl directory does not exist; creating...") log.Println("temp dl directory does not exist; creating...")
err := os.Mkdir(SystemInfo.TmpDir+"/dl", 0755) err := os.Mkdir(SystemInfo.ProgDir+"/dl", 0755)
CheckErr(err) CheckErr(err)
} }
// Setup log file // Setup log file
if PathExists(SystemInfo.TmpDir + "/r2mod-go.log") { if PathExists(SystemInfo.ProgDir + "/r2mod-go.log") {
err := os.Remove(SystemInfo.TmpDir + "/r2mod-go.log") err := os.Remove(SystemInfo.ProgDir + "/r2mod-go.log")
CheckErr(err) CheckErr(err)
} }
logFile, err := os.OpenFile(SystemInfo.TmpDir+"/r2mod-go.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644) logFile, err := os.OpenFile(SystemInfo.ProgDir+"/r2mod-go.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
CheckErr(err) CheckErr(err)
log.SetOutput(logFile) log.SetOutput(logFile)
@ -113,7 +113,7 @@ func GetSysInfo() SysInfo {
log.Println(" bepinDir:", SystemInfo.BepinDir) log.Println(" bepinDir:", SystemInfo.BepinDir)
log.Println(" configDir:", SystemInfo.ConfigDir) log.Println(" configDir:", SystemInfo.ConfigDir)
log.Println(" pluginDir:", SystemInfo.PluginDir) log.Println(" pluginDir:", SystemInfo.PluginDir)
log.Println(" tmpDir:", SystemInfo.TmpDir) log.Println(" ProgDir:", SystemInfo.ProgDir)
return SystemInfo return SystemInfo
} }