From 44b39a1b9f4bb641528384f2d74776ebf17177f1 Mon Sep 17 00:00:00 2001 From: Daniel Winkler Date: Fri, 16 May 2025 17:43:53 +0200 Subject: [PATCH] made r packages an overlay --- templates/r/flake.nix | 93 +++++++++++++++++++++---------------------- templates/r/rpkgs.nix | 50 +++++++++++++---------- 2 files changed, 74 insertions(+), 69 deletions(-) diff --git a/templates/r/flake.nix b/templates/r/flake.nix index 69e0d5f..9474c79 100644 --- a/templates/r/flake.nix +++ b/templates/r/flake.nix @@ -7,51 +7,49 @@ nCats.url = "github:dwinkler1/nixCatsConfig"; nCats.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = - { - self, - nixpkgs, - nCats, - ... - }@inputs: - let - forSystems = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all; - in - { - packages = forSystems ( - system: - let + outputs = { + self, + nixpkgs, + nCats, + ... + } @ inputs: let + forSystems = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all; + in { + packages = forSystems ( + system: let + inherit (nCats) utils; + finalPackage = nCats.packages.${system}.default.override (prev: { + dependencyOverlays = + prev.dependencyOverlays + ++ [ + (utils.standardPluginOverlay inputs) + (import ./rpkgs.nix) + ]; + categoryDefinitions = utils.mergeCatDefs prev.categoryDefinitions ( + { + pkgs, + settings, + categories, + name, + extra, + mkPlugin, + ... + } @ packageDef: let + rpkgs = import ./rpkgs.nix pkgs; + in { + lspsAndRuntimeDeps.rdev = with pkgs; [ + rWrapper + just + wget + ]; + } + ); - inherit (nCats) utils; - finalPackage = nCats.packages.${system}.default.override (prev: { - categoryDefinitions = utils.mergeCatDefs prev.categoryDefinitions ( - { - pkgs, - settings, - categories, - name, - extra, - mkPlugin, - ... - }@packageDef: - let - rpkgs = import ./rpkgs.nix pkgs; - in - { - lspsAndRuntimeDeps.rdev = with pkgs; [ - (rWrapper.override { - packages = rpkgs; - }) - just - wget - ]; - } - ); - - packageDefinitions = prev.packageDefinitions // { + packageDefinitions = + prev.packageDefinitions + // { nixCats = utils.mergeCatDefs prev.packageDefinitions.nixCats ( - { ... }: - { + {...}: { settings = { suffix-path = false; suffix-LD = false; @@ -62,11 +60,10 @@ } ); }; - }); - in + }); + in # and utils.mkAllWithDefault finalPackage - - ); - }; + ); + }; } diff --git a/templates/r/rpkgs.nix b/templates/r/rpkgs.nix index 418555d..59b2415 100644 --- a/templates/r/rpkgs.nix +++ b/templates/r/rpkgs.nix @@ -1,22 +1,30 @@ -pkgs: with pkgs.rPackages; [ - languageserver - fixest - dplyr - ggplot2 - (buildRPackage { - name = "nvimcom"; - src = pkgs.fetchFromGitHub { - owner = "R-nvim"; - repo = "R.nvim"; - rev = "f30c3b2be9ca1a3c277c5e66f5612774cc3fbcf4"; - sha256 = "sha256-X5ZfbrG7FtGJpnMJ2b7FMY/OM9rIIliFSqnbtudZCZg="; - }; - sourceRoot = "source/nvimcom"; - buildInputs = with pkgs; [ - R - gcc - gnumake +final: prev: { + rWrapper = prev.rWrapper.override { + packages = with prev.rPackages; [ + languageserver + fixest + dplyr + ggplot2 + janitor + tidyr + WeightIt + broom + (buildRPackage { + name = "nvimcom"; + src = pkgs.fetchFromGitHub { + owner = "R-nvim"; + repo = "R.nvim"; + rev = "f30c3b2be9ca1a3c277c5e66f5612774cc3fbcf4"; + sha256 = "sha256-X5ZfbrG7FtGJpnMJ2b7FMY/OM9rIIliFSqnbtudZCZg="; + }; + sourceRoot = "source/nvimcom"; + buildInputs = with prev; [ + R + gcc + gnumake + ]; + propagatedBuildInputs = [ ]; + }) ]; - propagatedBuildInputs = [ ]; - }) -] + }; +}