2009-03-30 14:22:19 +01:00
|
|
|
/* Some functions for manipulating meta attributes, as well as the
|
|
|
|
name attribute. */
|
|
|
|
|
2013-12-26 02:22:29 +00:00
|
|
|
let lib = import ./default.nix;
|
|
|
|
in
|
|
|
|
|
2009-03-30 14:22:19 +01:00
|
|
|
rec {
|
|
|
|
|
|
|
|
|
|
|
|
/* Add to or override the meta attributes of the given
|
|
|
|
derivation.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
addMetaAttrs {description = "Bla blah";} somePkg
|
|
|
|
*/
|
|
|
|
addMetaAttrs = newAttrs: drv:
|
2014-01-20 13:54:50 +00:00
|
|
|
drv // { meta = (drv.meta or {}) // newAttrs; };
|
2009-03-30 14:22:19 +01:00
|
|
|
|
|
|
|
|
|
|
|
/* Change the symbolic name of a package for presentation purposes
|
|
|
|
(i.e., so that nix-env users can tell them apart).
|
|
|
|
*/
|
|
|
|
setName = name: drv: drv // {inherit name;};
|
|
|
|
|
|
|
|
|
|
|
|
/* Like `setName', but takes the previous name as an argument.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
updateName (oldName: oldName + "-experimental") somePkg
|
|
|
|
*/
|
|
|
|
updateName = updater: drv: drv // {name = updater (drv.name);};
|
|
|
|
|
|
|
|
|
2014-03-10 14:01:56 +00:00
|
|
|
/* Append a suffix to the name of a package (before the version
|
|
|
|
part). */
|
|
|
|
appendToName = suffix: updateName (name:
|
|
|
|
let x = builtins.parseDrvName name; in "${x.name}-${suffix}-${x.version}");
|
2009-03-30 14:22:19 +01:00
|
|
|
|
|
|
|
|
2013-12-26 02:22:29 +00:00
|
|
|
/* Apply a function to each derivation and only to derivations in an attrset
|
|
|
|
*/
|
|
|
|
mapDerivationAttrset = f: set: lib.mapAttrs (name: pkg: if lib.isDerivation pkg then (f pkg) else pkg) set;
|
|
|
|
|
|
|
|
|
2009-03-30 14:22:19 +01:00
|
|
|
/* Decrease the nix-env priority of the package, i.e., other
|
|
|
|
versions/variants of the package will be preferred.
|
|
|
|
*/
|
|
|
|
lowPrio = drv: addMetaAttrs { priority = "10"; } drv;
|
|
|
|
|
2013-12-26 02:22:29 +00:00
|
|
|
|
|
|
|
/* Apply lowPrio to an attrset with derivations
|
|
|
|
*/
|
2014-01-20 13:54:50 +00:00
|
|
|
lowPrioSet = set: mapDerivationAttrset lowPrio set;
|
2013-12-26 02:22:29 +00:00
|
|
|
|
|
|
|
|
2010-07-22 09:59:46 +01:00
|
|
|
/* Increase the nix-env priority of the package, i.e., this
|
|
|
|
version/variant of the package will be preferred.
|
|
|
|
*/
|
2013-02-25 11:31:19 +00:00
|
|
|
hiPrio = drv: addMetaAttrs { priority = "-10"; } drv;
|
2013-12-26 02:22:29 +00:00
|
|
|
|
|
|
|
|
|
|
|
/* Apply hiPrio to an attrset with derivations
|
|
|
|
*/
|
|
|
|
hiPrioSet = set: mapDerivationAttrset hiPrio set;
|
2014-01-20 13:54:50 +00:00
|
|
|
|
2009-03-30 14:22:19 +01:00
|
|
|
}
|