package cli import ( "fmt" "r2go/tools" "github.com/fatih/color" ) // InstallMod is a CLI frontend for tools.DownloadMod. func InstallMod(pkg string) []string { green := color.New(color.FgGreen).SprintFunc() magenta := color.New(color.FgMagenta).SprintFunc() red := color.New(color.FgRed).SprintFunc() blue := color.New(color.FgBlue).SprintFunc() cyan := color.New(color.FgCyan).SprintFunc() // deps := []string{} buffer := cyan(fmt.Sprint(" > ", tools.ExposeModString(pkg), "... ")) stat, ov, deps := tools.DownloadMod(tools.ExposeModString(pkg)) if stat == 1 { buffer += green("up to date!") } else if stat == 2 { 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 { buffer += blue("downloaded") } // if stat != 3 { // _, mod := api.GetModData(tools.ExposeModString(pkg)) // for _, dep := range mod.Versions[0].Dependencies { // depString := tools.ExposeModString(dep) // if depString != "tristanmcpherson-R2API" && depString != "bbepis-BepInExPack" { // deps = append(deps, depString) // } // } // } fmt.Println(buffer) return deps } // RemoveMod is a CLI frontend for tools.RemoveMod func RemoveMod(pkg string) { blue := color.New(color.FgBlue).SprintFunc() red := color.New(color.FgRed).SprintFunc() cyan := color.New(color.FgCyan).SprintFunc() buffer := cyan(fmt.Sprint(" > ", tools.ExposeModString(pkg), "... ")) status := tools.RemoveMod(tools.ExposeModString(pkg)) if status == 2 { buffer += red("mod not found") } else if status == 1 { buffer += red("not installed") } else { buffer += blue("uninstalled") } fmt.Println(buffer) }