From 3b494aa591856b57824eb9305dc427612447ea23 Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 13 Mar 2026 11:58:08 -0400 Subject: [PATCH] nix: dynamically resolve go version in flake --- flake.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 63a89bca..7a475c02 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,22 @@ ... }: let + goModVersion = + let + content = builtins.readFile ./core/go.mod; + matched = builtins.match ".*\ngo ([0-9]+)\.([0-9]+).*" content; + in + if matched != null then + { + major = builtins.elemAt matched 0; + minor = builtins.elemAt matched 1; + } + else + { + major = "1"; + minor = "25"; + }; + goForPkgs = pkgs: pkgs.${"go_${goModVersion.major}_${goModVersion.minor}"}; forEachSystem = fn: nixpkgs.lib.genAttrs [ "aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux" ] ( @@ -85,6 +101,7 @@ inherit version; pname = "dms-shell"; src = ./core; + go = goForPkgs pkgs; vendorHash = "sha256-dEk7IOd6aQwaxZruxQclN7TGMyb8EJOl6NBWRsoZ9HQ="; subPackages = [ "cmd/dms" ]; @@ -187,7 +204,7 @@ buildInputs = with pkgs; [ - go_1_26 + (goForPkgs pkgs) go-mockery_2 gopls delve