Merge pull request #167247 from Artturin/addgetmainprog

lib/meta: add getExe to get the main program of a drv

Artturi c95f5e18 1c99518c

Changed files
+15 -1
lib
+1 -1
lib/default.nix
···
makeScope makeScopeWithSplicing;
inherit (self.meta) addMetaAttrs dontDistribute setName updateName
appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
-
hiPrioSet getLicenseFromSpdxId;
+
hiPrioSet getLicenseFromSpdxId getExe;
inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
cleanSource sourceByRegex sourceFilesBySuffices
commitIdFromGitRepo cleanSourceWith pathHasContext
+14
lib/meta.nix
···
lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}"
{ shortName = licstr; }
);
+
+
/* Get the path to the main program of a derivation with either
+
meta.mainProgram or pname or name
+
+
Type: getExe :: derivation -> string
+
+
Example:
+
getExe pkgs.hello
+
=> "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello"
+
getExe pkgs.mustache-go
+
=> "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
+
*/
+
getExe = x:
+
"${lib.getBin x}/bin/${x.meta.mainProgram or (lib.getName x)}";
}