feat(nix/utils): add storePathName, a more generic baseNameOf

This is a wrapper around baseNameOf which also can deal with
derivations. Added to //nix/utils since I've found myself introducing an
ad-hoc implementation of this for both //web/bubblegum and //nix/buildC.

Change-Id: I2fcd97a150d6eda21ab323fa0d881ff7442a892e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3049
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
sterni 2021-04-20 10:18:28 +02:00
parent c21dee2b5b
commit f88ac5c0b5
2 changed files with 48 additions and 8 deletions

View file

@ -5,6 +5,7 @@ let
inherit (depot.nix)
runExecline
getBins
utils
;
statusCodes = {
@ -179,16 +180,13 @@ let
# the input path or name of the input derivation.
# Must be given if the input is a string.
, name ? null
}:
, ...
}@args:
input: let
drvName =
if name != null
then name
else if builtins.isPath input
then baseNameOf input
else if lib.isDerivation input
then input.name
else builtins.throw "Need name";
if builtins.isString input || args ? name
then args.name
else utils.storePathName input;
script =
if builtins.isPath input || lib.isDerivation input
then input