From a1c1a26ac9991e0f8b42a99e558d736ecfdfffcd Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Sun, 1 Jun 2025 18:53:10 +0100 Subject: [PATCH] nix: deduplicate derivation attributes Change-Id: wyonpyyzurwlxxtyszsrqpolswspumlp Signed-off-by: oppiliappan --- flake.nix | 98 +++++++++++++++++++------------------------------------ 1 file changed, 33 insertions(+), 65 deletions(-) diff --git a/flake.nix b/flake.nix index e29fba8..9264289 100644 --- a/flake.nix +++ b/flake.nix @@ -50,41 +50,8 @@ in { overlays.default = final: prev: let goModHash = "sha256-HkmfHtnuixvDsLPthcguXToOFQo4eliZKQA2ibytdsE="; - in { - indigo-lexgen = final.buildGoModule { - pname = "indigo-lexgen"; - version = "0.1.0"; - src = indigo; - subPackages = ["cmd/lexgen"]; - vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs="; - doCheck = false; - }; - - appview = with final; - final.pkgsStatic.buildGoModule { - pname = "appview"; - version = "0.1.0"; - src = gitignoreSource ./.; - postUnpack = '' - pushd source - mkdir -p appview/pages/static/{fonts,icons} - cp -f ${htmx-src} appview/pages/static/htmx.min.js - cp -rf ${lucide-src}/*.svg appview/pages/static/icons/ - cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/ - cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/ - cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/ - ${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css - popd - ''; - doCheck = false; - subPackages = ["cmd/appview"]; - vendorHash = goModHash; - env.CGO_ENABLED = 1; - stdenv = pkgsStatic.stdenv; - }; - - appview-cross = with final; - final.pkgsCross.gnu64.pkgsStatic.buildGoModule { + appviewBuildAttrs = final: + with final; { pname = "appview"; version = "0.1.0"; src = gitignoreSource ./.; @@ -105,48 +72,49 @@ env.CGO_ENABLED = 1; stdenv = pkgsStatic.stdenv; }; - - # cross-compile on darwin to x86_64-linux - knot-cross = with final; - final.pkgsCross.gnu64.pkgsStatic.buildGoModule { + knotBuildAttrs = final: + with final; { pname = "knot"; version = "0.1.0"; src = gitignoreSource ./.; subPackages = ["cmd/knot"]; vendorHash = goModHash; - env.CGO_ENABLED = 1; }; + in { + indigo-lexgen = final.buildGoModule { + pname = "indigo-lexgen"; + version = "0.1.0"; + src = indigo; + subPackages = ["cmd/lexgen"]; + vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs="; + doCheck = false; + }; + + # appview packages + appview = final.pkgsStatic.buildGoModule (appviewBuildAttrs final); + appview-cross = final.pkgsCross.gnu64.pkgsStatic.buildGoModule (appviewBuildAttrs final); + # knot packages knot = with final; - final.pkgsStatic.buildGoModule { - pname = "knot"; - version = "0.1.0"; - src = gitignoreSource ./.; - nativeBuildInputs = [final.makeWrapper]; - subPackages = ["cmd/knot"]; - vendorHash = goModHash; - installPhase = '' - runHook preInstall + final.pkgsStatic.buildGoModule ((knotBuildAttrs final) + // { + nativeBuildInputs = [final.makeWrapper]; + installPhase = '' + runHook preInstall - mkdir -p $out/bin - cp $GOPATH/bin/knot $out/bin/knot + mkdir -p $out/bin + cp $GOPATH/bin/knot $out/bin/knot - wrapProgram $out/bin/knot \ - --prefix PATH : ${pkgs.git}/bin + wrapProgram $out/bin/knot \ + --prefix PATH : ${pkgs.git}/bin + + runHook postInstall + ''; + }); + knot-cross = final.pkgsCross.gnu64.pkgsStatic.buildGoModule (knotBuildAttrs final); # cross-compile on darwin to x86_64-linux + knot-unwrapped = final.pkgsStatic.buildGoModule (knotBuildAttrs final); - runHook postInstall - ''; - env.CGO_ENABLED = 1; - }; - knot-unwrapped = final.pkgsStatic.buildGoModule { - pname = "knot"; - version = "0.1.0"; - src = gitignoreSource ./.; - subPackages = ["cmd/knot"]; - vendorHash = goModHash; - env.CGO_ENABLED = 1; - }; genjwks = final.buildGoModule { pname = "genjwks"; version = "0.1.0"; -- 2.43.0