From a065eab75924ef1662eb73be72f9083803b4683b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Fri, 6 Feb 2026 23:21:52 +0100 Subject: [PATCH] fix: improve error messages for flake metadata command Capture stderr from nix flake metadata to show the actual error message instead of just "exit status 1". Co-Authored-By: Claude Opus 4.5 --- collector/flake.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/collector/flake.go b/collector/flake.go index da3dc02..e76d9f5 100644 --- a/collector/flake.go +++ b/collector/flake.go @@ -3,6 +3,7 @@ package collector import ( "context" "encoding/json" + "fmt" "log/slog" "os" "os/exec" @@ -189,12 +190,15 @@ func fetchFlakeMetadata(flakeURL string) (*flakeMetadata, error) { cmd := exec.CommandContext(ctx, "nix", "flake", "metadata", "--json", flakeURL) output, err := cmd.Output() if err != nil { - return nil, err + if exitErr, ok := err.(*exec.ExitError); ok { + return nil, fmt.Errorf("nix flake metadata failed: %s", string(exitErr.Stderr)) + } + return nil, fmt.Errorf("nix flake metadata failed: %w", err) } var data flakeMetadata if err := json.Unmarshal(output, &data); err != nil { - return nil, err + return nil, fmt.Errorf("failed to parse flake metadata: %w", err) } return &data, nil