Automatically add prefixed flake inputs as emacs packages

This commit is contained in:
Andrea Ciceri 2023-09-21 21:55:44 +02:00
parent 570734c9f0
commit 044db098ce
No known key found for this signature in database
4 changed files with 166 additions and 333 deletions

View file

@ -1,65 +1,77 @@
pkgs: epkgs:
with epkgs; [
meow
dracula-theme
solaire-mode
nerd-icons
nerd-icons-completion
nerd-icons-ibuffer
nerd-icons-dired
treemacs-nerd-icons
eat
eshell-syntax-highlighting
esh-autosuggest
clipetty
sideline
sideline-flymake
rainbow-delimiters
delight
vertico
marginalia
consult
orderless
embark
embark-consult
magit
magit-delta
magit-todos
diff-hl
corfu
corfu-terminal
kind-icon
cape
which-key
# nix-mode
(nix-ts-mode.overrideAttrs (_: {
src = pkgs.nix-ts-mode-source;
}))
unisonlang-mode
purescript-mode
dhall-mode
envrc
inheritenv
popper
paredit
yaml-mode
hl-todo
markdown-mode
haskell-mode
terraform-mode
diredfl
(pkgs.callPackage ./indent-bars.nix {
src = pkgs.indent-bars-source;
inherit (epkgs) trivialBuild compat;
})
(pkgs.callPackage ./combobulate.nix {
src = pkgs.combobulate-source;
inherit (epkgs) trivialBuild;
})
org-roam
consult-org-roam
(pkgs.callPackage ./agenix-el.nix {
src = pkgs.agenix-el-source;
inherit (epkgs) trivialBuild;
})
]
with epkgs; let
inherit (pkgs) lib;
depsPerPackage = {
indent-bars = [compat];
};
# *Attrset* containig extra emacs packages from flake inputs
extraPackages = lib.mapAttrs (inputName: input: let
deps = depsPerPackage.${inputName} or [];
in
trivialBuild {
pname = inputName;
src = input.outPath;
version = input.shortRev;
propagatedUserEnvPkgs = deps;
buildInputs = deps;
})
pkgs.extra-package-inputs;
# *List* containing emacs packages from (M)ELPA
mainPackages =
builtins.filter
# if an extra package has the same name then give precedence to it
(package: ! builtins.elem package.pname (builtins.attrNames extraPackages))
[
meow
dracula-theme
solaire-mode
nerd-icons
nerd-icons-completion
nerd-icons-ibuffer
nerd-icons-dired
treemacs-nerd-icons
eat
eshell-syntax-highlighting
esh-autosuggest
clipetty
sideline
sideline-flymake
rainbow-delimiters
delight
vertico
marginalia
consult
orderless
embark
embark-consult
magit
magit-delta
magit-todos
diff-hl
corfu
corfu-terminal
kind-icon
cape
which-key
# nix-mode
unisonlang-mode
purescript-mode
dhall-mode
envrc
inheritenv
popper
paredit
yaml-mode
hl-todo
markdown-mode
haskell-mode
terraform-mode
diredfl
org-roam
consult-org-roam
];
in
mainPackages ++ (builtins.attrValues extraPackages)