Simplifications

This commit is contained in:
Daniel Winkler 2025-09-12 12:45:05 +10:00
commit 4aa8ae44f8

View file

@ -20,25 +20,17 @@
"x86_64-darwin"
"aarch64-darwin"
];
forAllSystems = f:
builtins.listToAttrs (map (system: {
name = system;
value = f system;
})
systems);
forAllSystems = nixpkgs.lib.genAttrs systems;
# The overlay that exposes custom R packages
overlay = final: prev: let
readJSONFile = path: builtins.fromJSON (builtins.readFile path);
overlay = final: prev: {
extraRPackages = let
fetchfromGitHubJSONFile = path: prev.fetchFromGitHub (builtins.fromJSON (builtins.readFile path));
in {
extraRPackages = {
## H
httpgd = let
httpgdLatest = readJSONFile ./versions/httpgd.json;
in
prev.rPackages.buildRPackage {
httpgd = prev.rPackages.buildRPackage {
name = "httpgd";
src = prev.fetchFromGitHub httpgdLatest;
src = fetchfromGitHubJSONFile ./versions/httpgd.json;
propagatedBuildInputs = builtins.attrValues {
inherit
(prev.rPackages)
@ -50,12 +42,9 @@
};
## M
musicMetadata = let
musicMetadataLatest = readJSONFile ./versions/musicMetadata.json;
in
prev.rPackages.buildRPackage {
musicMetadata = prev.rPackages.buildRPackage {
name = "musicMetadata";
src = prev.fetchFromGitHub musicMetadataLatest;
src = fetchfromGitHubJSONFile ./versions/musicMetadata.json;
};
## N
@ -71,20 +60,18 @@
};
## S
synthdid = let
synthdidLatest = readJSONFile ./versions/synthdid.json;
in
prev.rPackages.buildRPackage {
synthdid = prev.rPackages.buildRPackage {
name = "synthdid";
src = prev.fetchFromGitHub synthdidLatest;
src = fetchfromGitHubJSONFile ./versions/synthdid.json;
propagatedBuildInputs = [prev.rPackages.mvtnorm];
};
};
};
in {
# For imports in other flakes
overlays.default = overlay;
# Optional: provide an R wrapper with these non-CRAN packages bundled
# run these with `nix run .#NAME`
packages = forAllSystems (
system: let
pkgs = import nixpkgs {
@ -96,8 +83,9 @@
franUpdate = pkgs.writeShellScriptBin "fran-update" (import ./versions pkgs);
}
);
# Helpful for overlay users: expose a devShell with R including these pkgs
devShells = forAllSystems (system: let
# Run this with `nix develop`
devShells = forAllSystems (
system: let
pkgs = import nixpkgs {
inherit system;
overlays = [self.overlays.default];
@ -109,7 +97,8 @@
franUpdate
];
};
});
}
);
};
nixConfig = {
extra-substituters = [