blob: f85fd8f1405359de4c5ffa75c6012d752ca87100 (
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
self: super:
let
mkExDrv = emacsPackages: name: args:
let
repoMeta = super.lib.importJSON (../repos/exwm/. + "/${name}.json");
in
emacsPackages.melpaBuild (
args // {
pname = name;
ename = name;
version = repoMeta.version;
commit = repoMeta.rev;
recipe = builtins.toFile "recipe" ''
(${name} :fetcher github
:repo "ch11ng/${name}")
'';
src = super.fetchFromGitHub {
owner = "ch11ng";
repo = name;
inherit (repoMeta) rev sha256;
};
}
);
in
{
emacsPackagesFor = emacs: (
(super.emacsPackagesFor emacs).overrideScope' (
eself: esuper:
let
melpaStablePackages = esuper.melpaStablePackages.override {
archiveJson = ../repos/melpa/recipes-archive-melpa.json;
};
melpaPackages = esuper.melpaPackages.override {
archiveJson = ../repos/melpa/recipes-archive-melpa.json;
};
elpaPackages = esuper.elpaPackages.override {
generated = ../repos/elpa/elpa-generated.nix;
};
epkgs = esuper.override {
inherit melpaStablePackages melpaPackages elpaPackages;
};
in
epkgs
// super.lib.optionalAttrs (super.lib.hasAttr "nongnuPackages" esuper) {
nongnuPackages = esuper.nongnuPackages.override {
generated = ../repos/nongnu/nongnu-generated.nix;
};
} // {
xelb = mkExDrv eself "xelb" {
packageRequires = [ eself.cl-generic eself.emacs ];
};
exwm = mkExDrv eself "exwm" {
packageRequires = [ eself.xelb ];
};
}
)
);
}
|