Monorepo for Tangled tangled.org

nix: deduplicate derivation attributes

Signed-off-by: oppiliappan <me@oppi.li>

oppi.li a1c1a26a 89dcba81

verified
Changed files
+33 -65
+33 -65
flake.nix
··· 50 50 in { 51 51 overlays.default = final: prev: let 52 52 goModHash = "sha256-HkmfHtnuixvDsLPthcguXToOFQo4eliZKQA2ibytdsE="; 53 - in { 54 - indigo-lexgen = final.buildGoModule { 55 - pname = "indigo-lexgen"; 56 - version = "0.1.0"; 57 - src = indigo; 58 - subPackages = ["cmd/lexgen"]; 59 - vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs="; 60 - doCheck = false; 61 - }; 62 - 63 - appview = with final; 64 - final.pkgsStatic.buildGoModule { 53 + appviewBuildAttrs = final: 54 + with final; { 65 55 pname = "appview"; 66 56 version = "0.1.0"; 67 57 src = gitignoreSource ./.; ··· 82 72 env.CGO_ENABLED = 1; 83 73 stdenv = pkgsStatic.stdenv; 84 74 }; 85 - 86 - appview-cross = with final; 87 - final.pkgsCross.gnu64.pkgsStatic.buildGoModule { 88 - pname = "appview"; 89 - version = "0.1.0"; 90 - src = gitignoreSource ./.; 91 - postUnpack = '' 92 - pushd source 93 - mkdir -p appview/pages/static/{fonts,icons} 94 - cp -f ${htmx-src} appview/pages/static/htmx.min.js 95 - cp -rf ${lucide-src}/*.svg appview/pages/static/icons/ 96 - cp -f ${inter-fonts-src}/web/InterVariable*.woff2 appview/pages/static/fonts/ 97 - cp -f ${inter-fonts-src}/web/InterDisplay*.woff2 appview/pages/static/fonts/ 98 - cp -f ${ibm-plex-mono-src}/fonts/complete/woff2/IBMPlexMono-Regular.woff2 appview/pages/static/fonts/ 99 - ${pkgs.tailwindcss}/bin/tailwindcss -i input.css -o appview/pages/static/tw.css 100 - popd 101 - ''; 102 - doCheck = false; 103 - subPackages = ["cmd/appview"]; 104 - vendorHash = goModHash; 105 - env.CGO_ENABLED = 1; 106 - stdenv = pkgsStatic.stdenv; 107 - }; 108 - 109 - # cross-compile on darwin to x86_64-linux 110 - knot-cross = with final; 111 - final.pkgsCross.gnu64.pkgsStatic.buildGoModule { 75 + knotBuildAttrs = final: 76 + with final; { 112 77 pname = "knot"; 113 78 version = "0.1.0"; 114 79 src = gitignoreSource ./.; 115 80 subPackages = ["cmd/knot"]; 116 81 vendorHash = goModHash; 117 - 118 82 env.CGO_ENABLED = 1; 119 83 }; 84 + in { 85 + indigo-lexgen = final.buildGoModule { 86 + pname = "indigo-lexgen"; 87 + version = "0.1.0"; 88 + src = indigo; 89 + subPackages = ["cmd/lexgen"]; 90 + vendorHash = "sha256-pGc29fgJFq8LP7n/pY1cv6ExZl88PAeFqIbFEhB3xXs="; 91 + doCheck = false; 92 + }; 120 93 94 + # appview packages 95 + appview = final.pkgsStatic.buildGoModule (appviewBuildAttrs final); 96 + appview-cross = final.pkgsCross.gnu64.pkgsStatic.buildGoModule (appviewBuildAttrs final); 97 + 98 + # knot packages 121 99 knot = with final; 122 - final.pkgsStatic.buildGoModule { 123 - pname = "knot"; 124 - version = "0.1.0"; 125 - src = gitignoreSource ./.; 126 - nativeBuildInputs = [final.makeWrapper]; 127 - subPackages = ["cmd/knot"]; 128 - vendorHash = goModHash; 129 - installPhase = '' 130 - runHook preInstall 100 + final.pkgsStatic.buildGoModule ((knotBuildAttrs final) 101 + // { 102 + nativeBuildInputs = [final.makeWrapper]; 103 + installPhase = '' 104 + runHook preInstall 105 + 106 + mkdir -p $out/bin 107 + cp $GOPATH/bin/knot $out/bin/knot 131 108 132 - mkdir -p $out/bin 133 - cp $GOPATH/bin/knot $out/bin/knot 109 + wrapProgram $out/bin/knot \ 110 + --prefix PATH : ${pkgs.git}/bin 134 111 135 - wrapProgram $out/bin/knot \ 136 - --prefix PATH : ${pkgs.git}/bin 112 + runHook postInstall 113 + ''; 114 + }); 115 + knot-cross = final.pkgsCross.gnu64.pkgsStatic.buildGoModule (knotBuildAttrs final); # cross-compile on darwin to x86_64-linux 116 + knot-unwrapped = final.pkgsStatic.buildGoModule (knotBuildAttrs final); 137 117 138 - runHook postInstall 139 - ''; 140 - env.CGO_ENABLED = 1; 141 - }; 142 - knot-unwrapped = final.pkgsStatic.buildGoModule { 143 - pname = "knot"; 144 - version = "0.1.0"; 145 - src = gitignoreSource ./.; 146 - subPackages = ["cmd/knot"]; 147 - vendorHash = goModHash; 148 - env.CGO_ENABLED = 1; 149 - }; 150 118 genjwks = final.buildGoModule { 151 119 pname = "genjwks"; 152 120 version = "0.1.0";