diff --git a/flake.nix b/flake.nix index 69e0d5f..924483d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,72 +1,12 @@ { - description = "Project Template"; - inputs = { - nixpkgs = { - url = "https://github.com/rstats-on-nix/nixpkgs/archive/2025-05-05.tar.gz"; + description = "Project Templates"; + output = {self}: { + templates = { + r = { + path = ./templates/r; + description = "R development environment"; + }; }; - nCats.url = "github:dwinkler1/nixCatsConfig"; - nCats.inputs.nixpkgs.follows = "nixpkgs"; + defaultTemplate = self.templates.r; }; - 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: { - 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 // { - nixCats = utils.mergeCatDefs prev.packageDefinitions.nixCats ( - { ... }: - { - settings = { - suffix-path = false; - suffix-LD = false; - }; - categories = { - rdev = true; - }; - } - ); - }; - }); - in - # and - utils.mkAllWithDefault finalPackage - - ); - }; } diff --git a/Justfile b/templates/r/Justfile similarity index 100% rename from Justfile rename to templates/r/Justfile diff --git a/flake.lock b/templates/r/flake.lock similarity index 100% rename from flake.lock rename to templates/r/flake.lock diff --git a/templates/r/flake.nix b/templates/r/flake.nix new file mode 100644 index 0000000..69e0d5f --- /dev/null +++ b/templates/r/flake.nix @@ -0,0 +1,72 @@ +{ + description = "Project Template"; + inputs = { + nixpkgs = { + url = "https://github.com/rstats-on-nix/nixpkgs/archive/2025-05-05.tar.gz"; + }; + 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 + + 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 // { + nixCats = utils.mergeCatDefs prev.packageDefinitions.nixCats ( + { ... }: + { + settings = { + suffix-path = false; + suffix-LD = false; + }; + categories = { + rdev = true; + }; + } + ); + }; + }); + in + # and + utils.mkAllWithDefault finalPackage + + ); + }; +} diff --git a/rpkgs.nix b/templates/r/rpkgs.nix similarity index 100% rename from rpkgs.nix rename to templates/r/rpkgs.nix