Files
nixpkgs/pkgs/development/compilers/dotnet/combine-deps.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

50 lines
982 B
Nix

{
list,
baseRid,
otherRids,
pkgs ? import ../../../.. { },
}:
let
inherit (pkgs) writeText;
inherit (pkgs.lib)
concatMap
concatMapStringsSep
generators
importJSON
optionals
replaceStrings
sortOn
strings
unique
;
packages = concatMap (file: importJSON file) list;
changePackageRid =
package: rid:
let
replace = replaceStrings [ ".${baseRid}" ] [ ".${rid}" ];
in
rec {
pname = replace package.pname;
inherit (package) version;
url = replace package.url;
sha256 = builtins.hashFile "sha256" (builtins.fetchurl url);
};
expandPackage =
package:
[ package ]
++ optionals (strings.match ".*\\.${baseRid}(\\..*|$)" package.pname != null) (
map (changePackageRid package) otherRids
);
allPackages = sortOn (package: [
package.pname
package.version
]) (concatMap expandPackage packages);
in
writeText "deps.json" (builtins.toJSON allPackages)