mkR function

This commit is contained in:
Daniel Winkler 2025-09-12 20:27:50 +10:00
commit 72e1c080bd

View file

@ -22,6 +22,23 @@
]; ];
forAllSystems = nixpkgs.lib.genAttrs systems; forAllSystems = nixpkgs.lib.genAttrs systems;
mkR = {
pkgs,
packages,
}: let
juliaPackages = builtins.concatMap (p: (p.passthru or {}).juliaPackages or []) packages;
in
pkgs.buildEnv {
name = "rWithDependencies";
paths =
[
(pkgs.rWrapper.override {inherit packages;})
]
++ (pkgs.lib.optionals (builtins.length juliaPackages > 0) [
(pkgs.julia-bin.withPackages juliaPackages)
]);
};
# The overlay that exposes custom R packages # The overlay that exposes custom R packages
overlay = final: prev: { overlay = final: prev: {
extraRPackageDeps = { extraRPackageDeps = {
@ -31,7 +48,8 @@
fetchfromGitHubJSONFile = path: prev.fetchFromGitHub (builtins.fromJSON (builtins.readFile path)); fetchfromGitHubJSONFile = path: prev.fetchFromGitHub (builtins.fromJSON (builtins.readFile path));
in { in {
## F ## F
fwildclusterboot = prev.rPackages.buildRPackage { fwildclusterboot =
(prev.rPackages.buildRPackage {
name = "fwildclusterboot"; name = "fwildclusterboot";
src = fetchfromGitHubJSONFile ./versions/fwildclusterboot.json; src = fetchfromGitHubJSONFile ./versions/fwildclusterboot.json;
propagatedBuildInputs = builtins.attrValues { propagatedBuildInputs = builtins.attrValues {
@ -52,7 +70,9 @@
RcppEigen RcppEigen
; ;
}; };
}; }).overrideAttrs (old: {
passthru = (old.passthru or {}) // {juliaPackages = ["WildBootTests" "StableRNGs"];};
});
## H ## H
httpgd = prev.rPackages.buildRPackage { httpgd = prev.rPackages.buildRPackage {
@ -106,7 +126,10 @@
overlays = [self.overlays.default]; overlays = [self.overlays.default];
}; };
in { in {
default = pkgs.rWrapper.override {packages = builtins.attrValues pkgs.extraRPackages;}; default = mkR {
inherit pkgs;
packages = builtins.attrValues pkgs.extraRPackages;
};
franUpdate = pkgs.writeShellScriptBin "fran-update" (import ./versions pkgs); franUpdate = pkgs.writeShellScriptBin "fran-update" (import ./versions pkgs);
} }
); );
@ -121,7 +144,6 @@
default = pkgs.mkShell { default = pkgs.mkShell {
packages = with self.packages."${system}"; [ packages = with self.packages."${system}"; [
default default
pkgs.extraRPackageDeps.julia-fwildclusterboot
franUpdate franUpdate
]; ];
}; };