Added check if mod exists
This commit is contained in:
parent
2b19b57541
commit
3933f84535
@ -113,16 +113,16 @@ func SearchMods(inp string) fuzzy.Ranks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetModData gets object of mod by depString
|
// GetModData gets object of mod by depString
|
||||||
func GetModData(depString string) Mod {
|
func GetModData(depString string) (int, Mod) {
|
||||||
if depString == "R2API" {
|
if depString == "R2API" {
|
||||||
depString = "tristanmcpherson-R2API"
|
depString = "tristanmcpherson-R2API"
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < len(PkgList); i++ {
|
for i := 0; i < len(PkgList); i++ {
|
||||||
if PkgList[i].FullName == depString {
|
if PkgList[i].FullName == depString {
|
||||||
return PkgList[i]
|
return 0, PkgList[i]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
panic("Mod not found")
|
return 1, Mod{}
|
||||||
}
|
}
|
||||||
|
16
cli/cli.go
16
cli/cli.go
@ -15,22 +15,28 @@ func InstallMod(pkg string) {
|
|||||||
|
|
||||||
green := color.New(color.FgGreen).SprintFunc()
|
green := color.New(color.FgGreen).SprintFunc()
|
||||||
magenta := color.New(color.FgMagenta).SprintFunc()
|
magenta := color.New(color.FgMagenta).SprintFunc()
|
||||||
|
red := color.New(color.FgRed).SprintFunc()
|
||||||
blue := color.New(color.FgBlue).SprintFunc()
|
blue := color.New(color.FgBlue).SprintFunc()
|
||||||
|
|
||||||
if stat == 1 {
|
if stat == 1 {
|
||||||
buffer += green("up to date!")
|
buffer += green("up to date!")
|
||||||
} else if stat == 2 {
|
} else if stat == 2 {
|
||||||
buffer += fmt.Sprintf("%s %s", magenta("updating to version"), ov)
|
buffer += fmt.Sprintf("%s %s", magenta("updating to version"), ov)
|
||||||
|
} else if stat == 3 {
|
||||||
|
buffer += fmt.Sprintf("%s", red("could not find the mod specified."))
|
||||||
} else {
|
} else {
|
||||||
buffer += blue("downloaded")
|
buffer += blue("downloaded")
|
||||||
}
|
}
|
||||||
|
|
||||||
mod := api.GetModData(tools.ExposeModString(pkg))
|
if stat != 3 {
|
||||||
for _, dep := range mod.Versions[0].Dependencies {
|
_, mod := api.GetModData(tools.ExposeModString(pkg))
|
||||||
depString := tools.ExposeModString(dep)
|
for _, dep := range mod.Versions[0].Dependencies {
|
||||||
if depString != "tristanmcpherson-R2API" && depString != "bbepis-BepInExPack" {
|
depString := tools.ExposeModString(dep)
|
||||||
InstallMod(depString)
|
if depString != "tristanmcpherson-R2API" && depString != "bbepis-BepInExPack" {
|
||||||
|
InstallMod(depString)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(buffer)
|
fmt.Println(buffer)
|
||||||
|
23
main.go
23
main.go
@ -55,9 +55,12 @@ func main() {
|
|||||||
case "info":
|
case "info":
|
||||||
api.InitAPI()
|
api.InitAPI()
|
||||||
if len(os.Args) <= 2 {
|
if len(os.Args) <= 2 {
|
||||||
fmt.Printf("Usage: %s info <dependency string>\n", os.Args[0])
|
fmt.Println("Usage: r2go info <dependency string>")
|
||||||
} else {
|
} else {
|
||||||
var selectedmod api.Mod = api.GetModData(os.Args[2])
|
status, selectedmod := api.GetModData(os.Args[2])
|
||||||
|
if status != 0 {
|
||||||
|
fmt.Println("> Could not find the mod specified.")
|
||||||
|
}
|
||||||
color.Cyan("Mod Info: %s", os.Args[2])
|
color.Cyan("Mod Info: %s", os.Args[2])
|
||||||
fmt.Println(" Name: " + selectedmod.Versions[0].FullName)
|
fmt.Println(" Name: " + selectedmod.Versions[0].FullName)
|
||||||
fmt.Println(" Desc: " + selectedmod.Versions[0].Description)
|
fmt.Println(" Desc: " + selectedmod.Versions[0].Description)
|
||||||
@ -106,9 +109,14 @@ func main() {
|
|||||||
|
|
||||||
color.Green("> Complete!")
|
color.Green("> Complete!")
|
||||||
case "pull":
|
case "pull":
|
||||||
color.Red("> Forcefully updating API Cache")
|
|
||||||
api.InitAPI()
|
api.InitAPI()
|
||||||
api.UpdateAPICache()
|
color.Cyan("> Checking API Cache")
|
||||||
|
if api.CheckAPICache() == 0 {
|
||||||
|
color.Green("> API Cache is up to date!")
|
||||||
|
} else {
|
||||||
|
color.Red("> API Cache out of date!")
|
||||||
|
api.UpdateAPICache()
|
||||||
|
}
|
||||||
case "toggle", "tm", "togglemods":
|
case "toggle", "tm", "togglemods":
|
||||||
if tools.ToggleMods() {
|
if tools.ToggleMods() {
|
||||||
color.Cyan("> Mods Enabled")
|
color.Cyan("> Mods Enabled")
|
||||||
@ -118,9 +126,8 @@ func main() {
|
|||||||
case "filter":
|
case "filter":
|
||||||
fmt.Println(tools.ExposeModString(os.Args[2]))
|
fmt.Println(tools.ExposeModString(os.Args[2]))
|
||||||
case "version", "ver", "v":
|
case "version", "ver", "v":
|
||||||
color.Magenta("> r2go")
|
color.Magenta("> r2go", version)
|
||||||
fmt.Println(">", version)
|
fmt.Println(" > github.com/endigma442")
|
||||||
fmt.Println("> git.cya.cx/endigma/r2mod-go")
|
|
||||||
case "search", "s", "find":
|
case "search", "s", "find":
|
||||||
api.InitAPI()
|
api.InitAPI()
|
||||||
|
|
||||||
@ -134,6 +141,6 @@ func main() {
|
|||||||
fmt.Println(" -", mod.Target)
|
fmt.Println(" -", mod.Target)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
fmt.Printf("Unknown command, use '%s help' for a list of commands.\n", os.Args[0])
|
fmt.Println("Unknown command, use 'r2go help' for a list of commands.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ func ExposeModString(input string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// DownloadMod gets the download URL and installs the mod in the correct folder
|
// DownloadMod gets the download URL and installs the mod in the correct folder
|
||||||
|
// DownloadMod returns 0 if the download is sucessful, and 1 if it is already installed
|
||||||
|
// DownlaodMod returns 2 if the mod updated, and 3 if the mod could not be found.
|
||||||
func DownloadMod(depString string) (int, string) {
|
func DownloadMod(depString string) (int, string) {
|
||||||
var status int
|
var status int
|
||||||
var modver string
|
var modver string
|
||||||
@ -28,7 +30,10 @@ func DownloadMod(depString string) (int, string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sysinfo := utils.GetSysInfo()
|
sysinfo := utils.GetSysInfo()
|
||||||
mod := api.GetModData(depString)
|
status, mod := api.GetModData(depString)
|
||||||
|
if status != 0 {
|
||||||
|
return 3, "not_found"
|
||||||
|
}
|
||||||
downloadURL := mod.Versions[0].DownloadURL
|
downloadURL := mod.Versions[0].DownloadURL
|
||||||
|
|
||||||
modName := sysinfo.ProgDir + "/dl/" + depString + ".zip"
|
modName := sysinfo.ProgDir + "/dl/" + depString + ".zip"
|
||||||
@ -37,10 +42,12 @@ func DownloadMod(depString string) (int, string) {
|
|||||||
modFolder := sysinfo.PluginDir + "/" + depString + "-" + modVersion
|
modFolder := sysinfo.PluginDir + "/" + depString + "-" + modVersion
|
||||||
|
|
||||||
if utils.PathExists(modFolder) {
|
if utils.PathExists(modFolder) {
|
||||||
|
|
||||||
return 1, modver
|
return 1, modver
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(api.GetModData(depString).Versions) >= 2 {
|
status, mod = api.GetModData(depString)
|
||||||
|
if len(mod.Versions) >= 2 {
|
||||||
modVersionOld := mod.Versions[1].VersionNumber
|
modVersionOld := mod.Versions[1].VersionNumber
|
||||||
modFolderOld := sysinfo.PluginDir + "/" + depString + "-" + modVersionOld
|
modFolderOld := sysinfo.PluginDir + "/" + depString + "-" + modVersionOld
|
||||||
|
|
||||||
@ -49,7 +56,7 @@ func DownloadMod(depString string) (int, string) {
|
|||||||
status = 2
|
status = 2
|
||||||
modver = modVersion
|
modver = modVersion
|
||||||
} else {
|
} else {
|
||||||
status = 3
|
status = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,8 +78,11 @@ func DownloadMod(depString string) (int, string) {
|
|||||||
|
|
||||||
// RemoveMod uninstalls a mod
|
// RemoveMod uninstalls a mod
|
||||||
func RemoveMod(depString string) int {
|
func RemoveMod(depString string) int {
|
||||||
modVersion := api.GetModData(depString).Versions[0].VersionNumber
|
status, mod := api.GetModData(depString)
|
||||||
modFolder := utils.SystemInfo.PluginDir + "/" + depString + "-" + modVersion
|
if status != 0 {
|
||||||
|
fmt.Println("> Could not find the mod specified.")
|
||||||
|
}
|
||||||
|
modFolder := utils.SystemInfo.PluginDir + "/" + depString + "-" + mod.Versions[0].VersionNumber
|
||||||
|
|
||||||
if !utils.PathExists(modFolder) {
|
if !utils.PathExists(modFolder) {
|
||||||
return 1
|
return 1
|
||||||
|
Loading…
Reference in New Issue
Block a user