diff options
author | Artturin <Artturin@artturin.com> | 2022-04-05 01:10:44 +0300 |
---|---|---|
committer | Artturin <Artturin@artturin.com> | 2022-04-24 04:19:49 +0300 |
commit | 379b9c8be30ee14eb8703ec00c7ea5da5337c6b6 (patch) | |
tree | 724f3d8fb60739f24c18828fb5c9bceb165a1890 /lib | |
parent | daac04325706fe506e576b1d6e7405367c386e11 (diff) |
lib/meta: add getExe to get the main program of a drv
Diffstat (limited to 'lib')
-rw-r--r-- | lib/default.nix | 2 | ||||
-rw-r--r-- | lib/meta.nix | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/default.nix b/lib/default.nix index 1f06283790a8b..ec7f536bbdde4 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -108,7 +108,7 @@ let 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 diff --git a/lib/meta.nix b/lib/meta.nix index 5b1f7ee5ff2d1..74b94211552b6 100644 --- a/lib/meta.nix +++ b/lib/meta.nix @@ -126,4 +126,18 @@ rec { 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)}"; } |