modules/nixpkgs: initial pkgs option, drop defaultPkgs specialArg

This minimal implementation allows `nixpkgs.pkgs` to be defined, but
does not implement evaluating an instance from a pkgsPath when _not_
defined.

The `defaultPkgs` specialArg is dropped in favour of `nixpkgs.pkgs`
being defined. If it's not defined, an assertion is thrown.

In the future, a nixpkgs source path can be supplied, defaulting to the
flake's `inputs.nixpkgs`. Along with other `nixpkgs.*` options, this
will allow a `pkgs` instance to be evaluated within the module eval.
This commit is contained in:
Matt Sturgeon 2024-08-14 05:31:27 +01:00
parent 8c3d521bff
commit 4b7a41276a
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
11 changed files with 111 additions and 43 deletions

View file

@ -55,6 +55,10 @@ in
_module.args.nixvimLib = lib.mkDefault config.lib.nixvim.extendedLib;
}
# Use global packages by default in nixvim's submodule
# TODO: `useGlobalPackages` option and/or deprecate using host packages?
{ programs.nixvim.nixpkgs.pkgs = lib.mkDefault pkgs; }
# Propagate nixvim's assertions to the host modules
(lib.mkIf cfg.enable { inherit (cfg) warnings assertions; })

View file

@ -18,7 +18,6 @@ let
cfg = config.programs.nixvim;
nixvimConfig = config.lib.nixvim.modules.evalNixvim {
extraSpecialArgs = {
defaultPkgs = pkgs;
darwinConfig = config;
};
modules = [

View file

@ -17,7 +17,6 @@ let
cfg = config.programs.nixvim;
nixvimConfig = config.lib.nixvim.modules.evalNixvim {
extraSpecialArgs = {
defaultPkgs = pkgs;
hmConfig = config;
};
modules = [

View file

@ -18,7 +18,6 @@ let
cfg = config.programs.nixvim;
nixvimConfig = config.lib.nixvim.modules.evalNixvim {
extraSpecialArgs = {
defaultPkgs = pkgs;
nixosConfig = config;
};
modules = [

View file

@ -1,5 +1,6 @@
default_pkgs: self:
{
# TODO: Deprecate this arg in favour of using module options
pkgs ? default_pkgs,
lib ? pkgs.lib,
extraSpecialArgs ? { },
@ -18,10 +19,13 @@ let
nixvimConfig = evalNixvim {
modules = [
mod
# TODO: only include this when `args?pkgs`:
{
_file = ./standalone.nix;
nixpkgs.pkgs = lib.mkDefault pkgs;
}
];
extraSpecialArgs = {
defaultPkgs = pkgs;
} // extraSpecialArgs;
inherit extraSpecialArgs;
};
inherit (nixvimConfig.config) enableMan build;
in