nixpkgs/pkgs/games/papermc/default.nix
Eelco Dolstra 8d2a765adf Let-float various fromJSON calls to avoid repeated JSON reading/parsing
Some of these were read/parsed dozens of times in a `nix search`
invocation, and in particular the MELPA recipes archive (3 MiB) was
read 4 times.
2024-06-03 18:52:42 +02:00

18 lines
576 B
Nix

let
versions = builtins.fromJSON (builtins.readFile ./versions.json);
in
{ callPackage, lib, ... }:
let
latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
escapeVersion = builtins.replaceStrings [ "." ] [ "_" ];
packages = lib.mapAttrs'
(version: value: {
name = "papermc-${escapeVersion version}";
value = callPackage ./derivation.nix { inherit (value) version hash; };
})
versions;
in
lib.recurseIntoAttrs (packages // {
papermc = builtins.getAttr "papermc-${escapeVersion latestVersion}" packages;
})