tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
cataclysmDDA: add utility function `attachPkgs`
Mitsuhiro Nakamura
5 years ago
0c02a559
19deef39
+36
-16
4 changed files
expand all
collapse all
unified
split
pkgs
games
cataclysm-dda
default.nix
git.nix
lib.nix
stable.nix
+2
-1
pkgs/games/cataclysm-dda/default.nix
···
33
buildMod
34
buildSoundPack
35
buildTileSet
36
-
wrapCDDA;
0
37
38
inherit pkgs;
39
};
···
33
buildMod
34
buildSoundPack
35
buildTileSet
36
+
wrapCDDA
37
+
attachPkgs;
38
39
inherit pkgs;
40
};
+2
-7
pkgs/games/cataclysm-dda/git.nix
···
1
-
{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
2
, tiles ? true, Cocoa
3
, debug ? false
4
, useXdgDir ? false
···
26
"VERSION=git-${version}-${lib.substring 0 8 src.rev}"
27
];
28
29
-
passthru = common.passthru // {
30
-
pkgs = pkgs.override { build = self; };
31
-
withMods = wrapCDDA self;
32
-
};
33
-
34
meta = common.meta // {
35
maintainers = with lib.maintainers;
36
common.meta.maintainers ++ [ rardiol ];
···
38
});
39
in
40
41
-
self
···
1
+
{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA, attachPkgs
2
, tiles ? true, Cocoa
3
, debug ? false
4
, useXdgDir ? false
···
26
"VERSION=git-${version}-${lib.substring 0 8 src.rev}"
27
];
28
0
0
0
0
0
29
meta = common.meta // {
30
maintainers = with lib.maintainers;
31
common.meta.maintainers ++ [ rardiol ];
···
33
});
34
in
35
36
+
attachPkgs pkgs self
+30
-1
pkgs/games/cataclysm-dda/lib.nix
···
1
{ callPackage }:
2
3
-
{
4
buildMod = callPackage ./builder.nix {
5
type = "mod";
6
};
···
14
};
15
16
wrapCDDA = callPackage ./wrapper.nix {};
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
17
}
···
1
{ callPackage }:
2
3
+
rec {
4
buildMod = callPackage ./builder.nix {
5
type = "mod";
6
};
···
14
};
15
16
wrapCDDA = callPackage ./wrapper.nix {};
17
+
18
+
# Required to fix `pkgs` and `withMods` attrs after applying `overrideAttrs`.
19
+
#
20
+
# Example:
21
+
# let
22
+
# myBuild = cataclysmDDA.jenkins.latest.tiles.overrideAttrs (_: {
23
+
# x = "hello";
24
+
# });
25
+
#
26
+
# # This refers to the derivation before overriding! So, `badExample.x` is not accessible.
27
+
# badExample = myBuild.withMods (_: []);
28
+
#
29
+
# # `myBuild` is correctly referred by `withMods` and `goodExample.x` is accessible.
30
+
# goodExample = let
31
+
# inherit (cataclysmDDA) attachPkgs pkgs;
32
+
# in
33
+
# (attachPkgs pkgs myBuild).withMods (_: []);
34
+
# in
35
+
# goodExample.x # returns "hello"
36
+
attachPkgs = pkgs: super:
37
+
let
38
+
self = super.overrideAttrs (old: {
39
+
passthru = old.passthru // {
40
+
pkgs = pkgs.override { build = self; };
41
+
withMods = wrapCDDA self;
42
+
};
43
+
});
44
+
in
45
+
self;
46
}
+2
-7
pkgs/games/cataclysm-dda/stable.nix
···
1
-
{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
2
, tiles ? true, Cocoa
3
, debug ? false
4
, useXdgDir ? false
···
19
sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68";
20
};
21
22
-
passthru = common.passthru // {
23
-
pkgs = pkgs.override { build = self; };
24
-
withMods = wrapCDDA self;
25
-
};
26
-
27
meta = common.meta // {
28
maintainers = with lib.maintainers;
29
common.meta.maintainers ++ [ skeidel ];
···
31
});
32
in
33
34
-
self
···
1
+
{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA, attachPkgs
2
, tiles ? true, Cocoa
3
, debug ? false
4
, useXdgDir ? false
···
19
sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68";
20
};
21
0
0
0
0
0
22
meta = common.meta // {
23
maintainers = with lib.maintainers;
24
common.meta.maintainers ++ [ skeidel ];
···
26
});
27
in
28
29
+
attachPkgs pkgs self