|
5 | 5 |
|
6 | 6 | # Override the buildGoModule function to use the specified Go package.
|
7 | 7 | buildGoModule = pkgs.buildGoModule.override { go = cfg.package; };
|
| 8 | + # A helper function to rebuild a package with the specific Go version. |
| 9 | + # It expects the package to have a `buildGo*Module` argument in its override function. |
| 10 | + # This will override multiple buildGo*Module arguments if they exist. |
8 | 11 | buildWithSpecificGo = pkg:
|
9 | 12 | let
|
10 | 13 | overrideArgs = lib.functionArgs pkg.override;
|
| 14 | + goModuleArgs = lib.filterAttrs (name: _: lib.match "buildGo.*Module" name != null) overrideArgs; |
| 15 | + goModuleOverrides = lib.mapAttrs (_: _: buildGoModule) goModuleArgs; |
11 | 16 | in
|
12 |
| - if builtins.hasAttr "buildGoModule" overrideArgs then |
13 |
| - pkg.override { inherit buildGoModule; } |
14 |
| - else if builtins.hasAttr "buildGoLatestModule" overrideArgs then |
15 |
| - pkg.override { buildGoLatestModule = buildGoModule; } |
16 |
| - else if builtins.hasAttr "buildGo125Module" overrideArgs then |
17 |
| - pkg.override { buildGo125Module = buildGoModule; } |
18 |
| - else if builtins.hasAttr "buildGo124Module" overrideArgs then |
19 |
| - pkg.override { buildGo124Module = buildGoModule; } |
20 |
| - else if builtins.hasAttr "buildGo123Module" overrideArgs then |
21 |
| - pkg.override { buildGo123Module = buildGoModule; } |
22 |
| - else if builtins.hasAttr "buildGo122Module" overrideArgs then |
23 |
| - pkg.override { buildGo122Module = buildGoModule; } |
| 17 | + if goModuleOverrides != {} then |
| 18 | + pkg.override goModuleOverrides |
24 | 19 | else
|
25 | 20 | throw ''
|
26 |
| - Package ${pkg.pname or "unknown"} requires a pinned version of `buildGoModule`. |
| 21 | + `languages.go` failed to override the Go version for ${pkg.pname or "unknown"}. |
| 22 | + Expected to find a `buildGo*Module` argument in its override function. |
27 | 23 |
|
28 |
| - The devenv go module needs to be updated to support overriding the Go version for this package. |
29 |
| -
|
30 |
| - Package arguments: ${toString (lib.attrNames overrideArgs)} |
| 24 | + Found: ${toString (lib.attrNames overrideArgs)} |
31 | 25 | '';
|
32 | 26 | in
|
33 | 27 | {
|
|
0 commit comments