95c74eae26
In Nixpkgs, the attribute in all-packages.nix corresponding to a package is usually equal to the package name. However, this doesn't work if the package contains a dash, which is fairly common. The convention is to replace the dash with an underscore (e.g. "dbus-lib" becomes "dbus_glib"), but that's annoying. So now dashes are valid in variable / attribute names, allowing you to write: dbus-glib = callPackage ../development/libraries/dbus-glib { }; and buildInputs = [ dbus-glib ]; Since we don't have a negation or subtraction operation in Nix, this is unambiguous.
21 lines
405 B
Nix
21 lines
405 B
Nix
with import ./lib.nix;
|
|
|
|
let
|
|
|
|
as = { x.y.z = 123; a.b.c = 456; };
|
|
|
|
bs = { f-o-o.bar = "foo"; };
|
|
|
|
or = x: y: x || y;
|
|
|
|
in
|
|
[ as.x.y.z
|
|
as.foo or "foo"
|
|
as.x.y.bla or as.a.b.c
|
|
as.a.b.c or as.x.y.z
|
|
as.x.y.bla or bs.f-o-o.bar or "xyzzy"
|
|
as.x.y.bla or bs.bar.foo or "xyzzy"
|
|
123.bla or null.foo or "xyzzy"
|
|
# Backwards compatibility test.
|
|
(fold or [] [true false false])
|
|
]
|