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
50 lines
982 B
Nix
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)
|