Skip to content

Commit ac5e572

Browse files
committed
Better error message when dist/variant is not found
1 parent 6130789 commit ac5e572

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

haskell/ghc_bindist.bzl

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,24 @@ def _ghc_bindist_impl(ctx):
7474
bindists = bindist[target]
7575
dist = ctx.attr.dist.get(target)
7676
if dist:
77-
bindists = [bindist for bindist in bindists if bindist["dist"] == dist]
78-
if not bindists:
79-
fail("no GHC bindist found with specified `dist` of `{}`".format(dist))
77+
filtered_bindists = [bindist for bindist in bindists if bindist["dist"] == dist]
78+
if not filtered_bindists:
79+
fail("no GHC bindist found with specified `dist` of `{}`\n available dists: {}".format(
80+
dist,
81+
", ".join(sorted([bindist["dist"] for bindist in bindists])),
82+
))
83+
bindists = filtered_bindists
8084

8185
variant = ctx.attr.variant.get(target)
8286
if variant:
83-
bindists = [bindist for bindist in bindists if bindist.get("variant") == variant]
84-
if not bindists:
85-
fail("no GHC bindist found with specified `dist` of `{}`".format(dist))
87+
filtered_bindists = [bindist for bindist in bindists if bindist.get("variant") == variant]
88+
if not filtered_bindists:
89+
fail("no GHC bindist found with specified `variant` of `{}`\n available dists{}: {}".format(
90+
variant,
91+
" (where `dist` == {})".format(dist) if dist else "",
92+
", ".join(sorted([bindist.get("variant", "(none)") for bindist in bindists])),
93+
))
94+
bindists = filtered_bindists
8695

8796
if len(bindists) > 1:
8897
dists = [bindist["dist"] for bindist in bindists]

0 commit comments

Comments
 (0)