mirror of
https://github.com/NotAShelf/neovim-flake.git
synced 2024-11-07 12:45:57 +01:00
flake.nix: modularize (pt 1)
This commit is contained in:
parent
c759ae02f5
commit
2f84ce13c4
4 changed files with 124 additions and 58 deletions
77
flake.nix
77
flake.nix
|
@ -23,81 +23,42 @@
|
||||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||||
systems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
|
systems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
# add lib to module args
|
||||||
|
{_module.args = {inherit (nixpkgs) lib;};}
|
||||||
|
./flake/apps.nix
|
||||||
|
./flake/legacyPackages.nix
|
||||||
|
./flake/packages.nix
|
||||||
|
];
|
||||||
|
|
||||||
flake = {
|
flake = {
|
||||||
lib = {
|
lib = {
|
||||||
inherit (import ./lib/stdlib-extended.nix nixpkgs.lib) nvim;
|
inherit (import ./lib/stdlib-extended.nix nixpkgs.lib) nvim;
|
||||||
inherit neovimConfiguration;
|
inherit neovimConfiguration;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixosModules.default = {
|
||||||
|
imports = [./lib/hm-module.nix];
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
inputs.tidalcycles.overlays.default
|
||||||
|
inputs.self.overlays.default
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
overlays.default = final: prev: {
|
overlays.default = final: prev: {
|
||||||
inherit neovimConfiguration;
|
inherit neovimConfiguration;
|
||||||
neovim-nix = buildPkg prev [nixConfig];
|
neovim-nix = buildPkg prev [nixConfig];
|
||||||
neovim-maximal = buildPkg prev [maximalConfig];
|
neovim-maximal = buildPkg prev [maximalConfig];
|
||||||
neovim-tidal = buildPkg prev [tidalConfig];
|
neovim-tidal = buildPkg prev [tidalConfig];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosModules.hm-module = {
|
|
||||||
imports = [
|
|
||||||
./lib/hm.nix
|
|
||||||
# {nixpkgs.overlays = [inputs.self.overlays.default];} what?
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
perSystem = {
|
perSystem = {
|
||||||
system,
|
config,
|
||||||
self',
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
legacyPackages = import nixpkgs {
|
devShells.default = pkgs.mkShell {nativeBuildInputs = [config.packages.nix];};
|
||||||
inherit system;
|
|
||||||
overlays = [
|
|
||||||
inputs.tidalcycles.overlays.default
|
|
||||||
(final: prev: {
|
|
||||||
rnix-lsp = inputs.rnix-lsp.defaultPackage.${system};
|
|
||||||
nil = inputs.nil.packages.${system}.default;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
apps =
|
|
||||||
{
|
|
||||||
nix.program = lib.getExe self'.packages.nix;
|
|
||||||
maximal.program = lib.getExe self'.packages.maximal;
|
|
||||||
default = self'.apps.nix;
|
|
||||||
}
|
|
||||||
// (
|
|
||||||
if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
|
|
||||||
then {
|
|
||||||
tidal.program = lib.getExe self'.packages.tidal;
|
|
||||||
}
|
|
||||||
else {}
|
|
||||||
);
|
|
||||||
|
|
||||||
devShells.default = self'.legacyPackages.mkShell {nativeBuildInputs = [self'.packages.nix];};
|
|
||||||
|
|
||||||
packages = let
|
|
||||||
docs = import ./docs {
|
|
||||||
pkgs = self'.legacyPackages;
|
|
||||||
nmdSrc = inputs.nmd;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# Documentation
|
|
||||||
docs = docs.manual.html;
|
|
||||||
docs-html = docs.manual.html;
|
|
||||||
docs-manpages = docs.manPages;
|
|
||||||
docs-json = docs.options.json;
|
|
||||||
|
|
||||||
# Available Configurations
|
|
||||||
nix = buildPkg self'.legacyPackages [nixConfig];
|
|
||||||
maximal = buildPkg self'.legacyPackages [maximalConfig];
|
|
||||||
}
|
|
||||||
// (
|
|
||||||
if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
|
|
||||||
then {tidal = buildPkg self'.legacyPackages [tidalConfig];}
|
|
||||||
else {}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
21
flake/apps.nix
Normal file
21
flake/apps.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{lib, ...}: {
|
||||||
|
perSystem = {
|
||||||
|
system,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
apps =
|
||||||
|
{
|
||||||
|
nix.program = lib.getExe config.packages.nix;
|
||||||
|
maximal.program = lib.getExe config.packages.maximal;
|
||||||
|
default = config.apps.nix;
|
||||||
|
}
|
||||||
|
// (
|
||||||
|
if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
|
||||||
|
then {
|
||||||
|
tidal.program = lib.getExe config.packages.tidal;
|
||||||
|
}
|
||||||
|
else {}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
19
flake/legacyPackages.nix
Normal file
19
flake/legacyPackages.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{inputs, ...}: {
|
||||||
|
perSystem = {
|
||||||
|
system,
|
||||||
|
inputs',
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
legacyPackages = import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [
|
||||||
|
inputs.tidalcycles.overlays.default
|
||||||
|
inputs.self.overlays.default
|
||||||
|
(_: _: {
|
||||||
|
rnix-lsp = inputs'.rnix-lsp.defaultPackage;
|
||||||
|
nil = inputs'.nil.packages.default;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
65
flake/packages.nix
Normal file
65
flake/packages.nix
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
{inputs, ...}: {
|
||||||
|
# imports = [
|
||||||
|
# inputs.flake-parts.flakeModules.easyOverlay
|
||||||
|
# ];
|
||||||
|
|
||||||
|
perSystem = {
|
||||||
|
system,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
# inherit (import ../extra.nix inputs) neovimConfiguration mainConfig;
|
||||||
|
|
||||||
|
# tidalConfig = {
|
||||||
|
# config.vim.tidal.enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# buildPkg = pkgs: modules:
|
||||||
|
# (neovimConfiguration {
|
||||||
|
# inherit pkgs modules;
|
||||||
|
# })
|
||||||
|
# .neovim;
|
||||||
|
|
||||||
|
# nixConfig = mainConfig false;
|
||||||
|
# maximalConfig = mainConfig true;
|
||||||
|
in {
|
||||||
|
# overlayAttrs =
|
||||||
|
# {
|
||||||
|
# inherit neovimConfiguration;
|
||||||
|
# neovim-nix = config.packages.nix;
|
||||||
|
# neovim-maximal = config.packages.maximal;
|
||||||
|
# }
|
||||||
|
# // (
|
||||||
|
# if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
|
||||||
|
# then {neovim-tidal = config.packages.tidal;}
|
||||||
|
# else {}
|
||||||
|
# );
|
||||||
|
|
||||||
|
packages = let
|
||||||
|
docs = import ../docs {
|
||||||
|
inherit pkgs;
|
||||||
|
nmdSrc = inputs.nmd;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Documentation
|
||||||
|
docs = docs.manual.html;
|
||||||
|
docs-html = docs.manual.html;
|
||||||
|
docs-manpages = docs.manPages;
|
||||||
|
docs-json = docs.options.json;
|
||||||
|
|
||||||
|
# nvim configs
|
||||||
|
# nix = buildPkg pkgs [nixConfig];
|
||||||
|
# maximal = buildPkg pkgs [maximalConfig];
|
||||||
|
nix = config.legacyPackages.neovim-nix;
|
||||||
|
maximal = config.legacyPackages.neovim-maximal;
|
||||||
|
}
|
||||||
|
// (
|
||||||
|
if !(builtins.elem system ["aarch64-darwin" "x86_64-darwin"])
|
||||||
|
# then {tidal = buildPkg pkgs [tidalConfig];}
|
||||||
|
then {tidal = config.legacyPackages.neovim-tidal;}
|
||||||
|
else {}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue