diff --git a/internal/config/defaults.yaml b/internal/config/defaults.yaml index e25e5ff..ff2bc1f 100644 --- a/internal/config/defaults.yaml +++ b/internal/config/defaults.yaml @@ -13,7 +13,7 @@ packages: - zip - tree - htop - - neofetch + - fastfetch - ripgrep - fd - bat diff --git a/internal/platform/pacman.go b/internal/platform/pacman.go index 027747a..d720120 100644 --- a/internal/platform/pacman.go +++ b/internal/platform/pacman.go @@ -14,9 +14,17 @@ type ExecRunner struct{} func (ExecRunner) Run(ctx context.Context, name string, args ...string) error { cmd := exec.CommandContext(ctx, name, args...) + var stderr bytes.Buffer cmd.Stdout = nil - cmd.Stderr = nil - return cmd.Run() + cmd.Stderr = &stderr + if err := cmd.Run(); err != nil { + msg := strings.TrimSpace(stderr.String()) + if msg == "" { + return fmt.Errorf("%s %s: %w", name, strings.Join(args, " "), err) + } + return fmt.Errorf("%s %s: %w: %s", name, strings.Join(args, " "), err, msg) + } + return nil } func (ExecRunner) Output(ctx context.Context, name string, args ...string) ([]byte, error) {