about summary refs log tree commit diff
path: root/default.nix
blob: 044dbbb662a049a936cb4b7022921e3b59cd95d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
self: super:
let
  mkExDrv = emacsPackagesNg: name: args: let
    repoMeta = super.lib.importJSON (./. + "/repos/${name}.json");
  in emacsPackagesNg.melpaBuild (args // {
      pname   = name;
      ename   = name;
      version = repoMeta.version;
      recipe  = builtins.toFile "recipe" ''
        (${name} :fetcher github
          :repo "ch11ng/${name}")
      '';

      src = super.fetchFromGitHub {
        owner  = "ch11ng";
        repo   = name;
        inherit (repoMeta) rev sha256;
      };
  });

in {
  emacsPackagesNgFor = emacs:
    (super.emacsPackagesNgFor emacs).overrideScope'(eself: esuper: {
      xelb = mkExDrv eself "xelb" {
        packageRequires = [ eself.cl-generic eself.emacs ];
      };
      exwm = mkExDrv eself "exwm" {
        packageRequires = [ eself.xelb ];
      };
      exim = mkExDrv eself "exim" {
        packageRequires = [ eself.xelb ];
      };
    });
}