package main type CargoManager struct{} func (c *CargoManager) Install(packages []string) error { if len(packages) == 0 { return nil } err := installWithProgress(c, packages) if err != nil { return err } return nil } func (c *CargoManager) Name() string { return "Cargo" } func (c *CargoManager) InstallManager() error { if _, err := execLookPath("brew"); err != nil { installHomebrew() } if _, err := execLookPath("cargo"); err == nil { return nil } cmd := execCommand("brew", "install", "rust") return cmd.Run() } func (c *CargoManager) InstallPackage(pkg string) error { cmd := execCommand("cargo", "install", pkg) return cmd.Run() }