package main import ( // "fmt" // "log" "os/exec" ) type CargoManager struct{} func (c *CargoManager) Install(packages []string) error { if len(packages) == 0 { return nil } // fmt.Printf("\nInstalliere %s-Pakete...\n", c.Name()) err := installWithProgress(c, packages) if err != nil { return err } // for _, pkg := range packages { // err := installPackageWithProgress(pkg, func() error { // cmd := exec.Command("cargo", "install", pkg) // return cmd.Run() // }) // if err != nil { // log.Printf("Fehler bei der Installation von %s: %v", pkg, err) // } // } // fmt.Println("Installation abgeschlossen") return nil } func (c *CargoManager) Name() string { return "Cargo" } func (c *CargoManager) InstallManager() error { if _, err := exec.LookPath("brew"); err != nil { installHomebrew() } if _, err := exec.LookPath("cargo"); err == nil { return nil } cmd := exec.Command("brew", "install", "rust") return cmd.Run() } func (c *CargoManager) InstallPackage(pkg string) error { cmd := exec.Command("cargo", "install", pkg) return cmd.Run() }