refactor(packages): expose mkEmacs function

This commit is contained in:
Artur Manuel 2025-01-28 16:27:51 +00:00
commit 0c281f506d
4 changed files with 55 additions and 48 deletions

3
.editorconfig Normal file
View file

@ -0,0 +1,3 @@
[*.nix]
indent_style = space
indent_size = 2

2
.gitignore vendored
View file

@ -7,3 +7,5 @@
!/.gitignore !/.gitignore
!/README.org !/README.org
!/media !/media
!/.editorconfig
!/lib.nix

View file

@ -11,25 +11,24 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = outputs = inputs: let
inputs: lib = inputs.nixpkgs.lib.extend (import ./lib.nix);
inputs.parts.lib.mkFlake { inherit inputs; } { in
inputs.parts.lib.mkFlake {
inherit inputs;
specialArgs.lib = lib;
} {
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
]; ];
perSystem = perSystem = {
{
pkgs, pkgs,
self', self',
config, config,
system, system,
... ...
}: }: {
let
inherit (import ./emacs/mkEmacs.nix pkgs) mkEmacs;
in
{
_module.args.pkgs = import inputs.nixpkgs { _module.args.pkgs = import inputs.nixpkgs {
inherit system; inherit system;
overlays = [ overlays = [
@ -37,12 +36,16 @@
]; ];
}; };
packages = { packages = builtins.mapAttrs (_: v:
pankomacs = mkEmacs pkgs.emacs30-pgtk; lib.mkEmacs {
pankomacs-x11 = mkEmacs pkgs.emacs30-gtk3; inherit pkgs;
emacs = v;
}) {
pankomacs = pkgs.emacs30-pgtk;
pankomacs-x11 = pkgs.emacs30-gtk3;
}; };
formatter = pkgs.nixfmt-rfc-style; formatter = pkgs.alejandra;
}; };
}; };
} }

View file

@ -1,7 +1,9 @@
{ pkgs, ... }: final: prev: {
let mkEmacs = {
mkEmacsPackage = pkgs,
{ emacs,
}: let
mkEmacsPackage = {
epkgs, epkgs,
pname, pname,
version, version,
@ -17,17 +19,14 @@ let
} }
) {inherit (epkgs) trivialBuild;}; ) {inherit (epkgs) trivialBuild;};
in in
{
mkEmacs =
emacs:
pkgs.emacsWithPackagesFromUsePackage { pkgs.emacsWithPackagesFromUsePackage {
package = emacs; package = emacs;
defaultInitFile = true; defaultInitFile = true;
config = ./config.el; config = ./config.el;
extraEmacsPackages = extraEmacsPackages = epkgs:
epkgs:
builtins.attrValues { builtins.attrValues {
inherit (epkgs) inherit
(epkgs)
spacious-padding spacious-padding
mood-line mood-line
which-key which-key