Simplifications

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

View file

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