package packagemanager import "system_setup_tool/internal/shell" type PipxManager struct{} func (p *PipxManager) Install(packages []string) error { if len(packages) == 0 { return nil } err := InstallWithProgress(p, packages) if err != nil { return err } return nil } func (p *PipxManager) Name() string { return "Pipx" } func (p *PipxManager) InstallManager() error { if _, err := shell.ExecLookPath("brew"); err != nil { installHomebrew() } if _, err := shell.ExecLookPath("pipx"); err == nil { return nil } cmd := shell.ExecCommand("brew", "install", "pipx") return cmd.Run() } func (p *PipxManager) InstallPackage(pkg string) error { cmd := shell.ExecCommand("pipx", "install", pkg) return cmd.Run() } func (p *PipxManager) RemovePackage(pkg string) error { cmd := shell.ExecCommand("pipx", "uninstall", pkg) return cmd.Run() } func (p *PipxManager) SearchPackage(pkg string) []string { return []string{} } func (p *PipxManager) UpdatePackage(pkg string) error { cmd := shell.ExecCommand("pipx", "upgrade", pkg) return cmd.Run() } func (p *PipxManager) UpdateAllPackages() error { cmd := shell.ExecCommand("pipx", "upgrade-all") return cmd.Run() }