risk/cli/cli.go

62 lines
1.6 KiB
Go

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), "... "))
if tools.RemoveMod(tools.ExposeModString(pkg)) == 1 {
buffer += red("not installed")
} else {
buffer += blue("uninstalled")
}
fmt.Println(buffer)
}