mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-20 16:15:43 +02:00
modules: refactor module bootstrapping
Let's simplify things by defining all modules in `./plugins`, `./modules` and `./wrappers/modules`. Instead of currying `pkgs` into a bootstrapping module, we can require `defaultPkgs` be provided as a special arg. This refactor allows us to completely remove `flake-modules/modules.nix`!
This commit is contained in:
parent
3d96960348
commit
d2afb176ff
16 changed files with 129 additions and 159 deletions
|
@ -1,26 +1,15 @@
|
|||
{ modules, helpers }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
helpers:
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
inherit (lib)
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkOptionType
|
||||
mkForce
|
||||
mkMerge
|
||||
mkIf
|
||||
types
|
||||
;
|
||||
inherit (lib) mkOption mkOptionType;
|
||||
cfg = config.programs.nixvim;
|
||||
in
|
||||
{
|
||||
topLevelModules = [
|
||||
../modules
|
||||
./modules/output.nix
|
||||
(import ./modules/files.nix (modules pkgs))
|
||||
] ++ (modules pkgs);
|
||||
./modules/files.nix
|
||||
];
|
||||
|
||||
helpers = mkOption {
|
||||
type = mkOptionType {
|
||||
|
@ -33,9 +22,6 @@ in
|
|||
};
|
||||
|
||||
configFiles =
|
||||
let
|
||||
cfg = config.programs.nixvim;
|
||||
in
|
||||
(lib.mapAttrs' (_: file: lib.nameValuePair "nvim/${file.path}" { text = file.content; }) cfg.files)
|
||||
// (lib.mapAttrs' (
|
||||
path: content: lib.nameValuePair "nvim/${path}" { text = content; }
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
modules,
|
||||
self,
|
||||
getHelpers,
|
||||
}:
|
||||
{ self, getHelpers }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
|
@ -20,7 +16,7 @@ let
|
|||
types
|
||||
;
|
||||
helpers = getHelpers pkgs false;
|
||||
shared = import ./_shared.nix { inherit modules helpers; } args;
|
||||
shared = import ./_shared.nix helpers args;
|
||||
cfg = config.programs.nixvim;
|
||||
in
|
||||
{
|
||||
|
@ -31,6 +27,7 @@ in
|
|||
shorthandOnlyDefinesConfig = true;
|
||||
specialArgs = {
|
||||
darwinConfig = config;
|
||||
defaultPkgs = pkgs;
|
||||
inherit helpers;
|
||||
};
|
||||
modules = [ ./modules/darwin.nix ] ++ shared.topLevelModules;
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
modules,
|
||||
self,
|
||||
getHelpers,
|
||||
}:
|
||||
{ self, getHelpers }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
|
@ -19,7 +15,7 @@ let
|
|||
types
|
||||
;
|
||||
helpers = getHelpers pkgs false;
|
||||
shared = import ./_shared.nix { inherit modules helpers; } args;
|
||||
shared = import ./_shared.nix helpers args;
|
||||
cfg = config.programs.nixvim;
|
||||
files = shared.configFiles // {
|
||||
"nvim/init.lua".text = cfg.initContent;
|
||||
|
@ -33,6 +29,7 @@ in
|
|||
shorthandOnlyDefinesConfig = true;
|
||||
specialArgs = {
|
||||
hmConfig = config;
|
||||
defaultPkgs = pkgs;
|
||||
inherit helpers;
|
||||
};
|
||||
modules = [ ./modules/hm.nix ] ++ shared.topLevelModules;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
modules:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
|
@ -10,12 +9,15 @@ let
|
|||
inherit (lib) types;
|
||||
fileModuleType = types.submoduleWith {
|
||||
shorthandOnlyDefinesConfig = true;
|
||||
specialArgs.helpers = helpers;
|
||||
specialArgs = {
|
||||
inherit helpers;
|
||||
defaultPkgs = pkgs;
|
||||
};
|
||||
modules = [
|
||||
(
|
||||
{ name, config, ... }:
|
||||
{
|
||||
imports = modules;
|
||||
imports = [ ../../modules ];
|
||||
options.plugin = lib.mkOption {
|
||||
type = types.package;
|
||||
description = "A derivation with the content of the file in it";
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{
|
||||
modules,
|
||||
self,
|
||||
getHelpers,
|
||||
}:
|
||||
{ self, getHelpers }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
|
@ -20,7 +16,7 @@ let
|
|||
types
|
||||
;
|
||||
helpers = getHelpers pkgs false;
|
||||
shared = import ./_shared.nix { inherit modules helpers; } args;
|
||||
shared = import ./_shared.nix helpers args;
|
||||
cfg = config.programs.nixvim;
|
||||
files = shared.configFiles // {
|
||||
"nvim/sysinit.lua".text = cfg.initContent;
|
||||
|
@ -34,6 +30,7 @@ in
|
|||
shorthandOnlyDefinesConfig = true;
|
||||
specialArgs = {
|
||||
nixosConfig = config;
|
||||
defaultPkgs = pkgs;
|
||||
inherit helpers;
|
||||
};
|
||||
modules = [ ./modules/nixos.nix ] ++ shared.topLevelModules;
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
default_pkgs:
|
||||
{
|
||||
modules,
|
||||
self,
|
||||
getHelpers,
|
||||
}:
|
||||
{ self, getHelpers }:
|
||||
{
|
||||
pkgs ? default_pkgs,
|
||||
extraSpecialArgs ? { },
|
||||
|
@ -14,23 +10,11 @@ let
|
|||
inherit (pkgs) lib;
|
||||
|
||||
helpers = getHelpers pkgs _nixvimTests;
|
||||
shared = import ./_shared.nix { inherit modules helpers; } {
|
||||
shared = import ./_shared.nix helpers {
|
||||
inherit pkgs lib;
|
||||
config = { };
|
||||
};
|
||||
|
||||
mkEval =
|
||||
mod:
|
||||
lib.evalModules {
|
||||
modules = [
|
||||
mod
|
||||
{ wrapRc = true; }
|
||||
] ++ shared.topLevelModules;
|
||||
specialArgs = {
|
||||
inherit helpers;
|
||||
} // extraSpecialArgs;
|
||||
};
|
||||
|
||||
handleAssertions =
|
||||
config:
|
||||
let
|
||||
|
@ -44,7 +28,16 @@ let
|
|||
mkNvim =
|
||||
mod:
|
||||
let
|
||||
evaledModule = mkEval mod;
|
||||
evaledModule = lib.evalModules {
|
||||
modules = [
|
||||
mod
|
||||
{ wrapRc = true; }
|
||||
] ++ shared.topLevelModules;
|
||||
specialArgs = {
|
||||
inherit helpers;
|
||||
defaultPkgs = pkgs;
|
||||
} // extraSpecialArgs;
|
||||
};
|
||||
config = handleAssertions evaledModule.config;
|
||||
in
|
||||
(pkgs.symlinkJoin {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue