package main type GolangManager struct{} func (g *GolangManager) Install(packages []string) error { if len(packages) == 0 { return nil } err := installWithProgress(g, packages) if err != nil { return err } return nil } func (g *GolangManager) Name() string { return "Golang" } func (g *GolangManager) InstallManager() error { if _, err := execLookPath("brew"); err != nil { installHomebrew() } if _, err := execLookPath("go"); err == nil { return nil } cmd := execCommand("brew", "install", "golang") return cmd.Run() } func (g *GolangManager) InstallPackage(pkg string) error { cmd := execCommand("go", "install", pkg+"@latest") return cmd.Run() }