srcOnly: fix invocation and document

Previously, callPackage would try and fill the arguments such as `name`
and `src` which would cause problems if those existed as top-level
attributes. This also makes it clearer what part is the function
signature.

Then document the derivation inline in the code to explain the ellipsis
and various use-cases.
This commit is contained in:
zimbatm 2020-04-22 09:48:05 +02:00
parent 539fb74a5b
commit bbbc419186
No known key found for this signature in database
GPG key ID: 71BAF6D40C1D63D7
2 changed files with 17 additions and 2 deletions

View file

@ -1,4 +1,19 @@
{stdenv, name, src, patches ? [], buildInputs ? [], ...}:
{ stdenv }@orig:
# srcOnly is a utility builder that only fetches and unpacks the given `src`,
# maybe pathings it in the process with the optional `patches` and
# `buildInputs` attributes.
#
# It can be invoked directly, or be used to wrap an existing derivation. Eg:
#
# > srcOnly pkgs.hello
#
{ name
, src
, stdenv ? orig.stdenv
, patches ? []
, buildInputs ? []
, ... # needed when passing an existing derivation
}:
stdenv.mkDerivation {
inherit src buildInputs patches name;
installPhase = "cp -r . $out";

View file

@ -450,7 +450,7 @@ in
singularity-tools = callPackage ../build-support/singularity-tools { };
srcOnly = args: callPackage ../build-support/src-only args;
srcOnly = callPackage ../build-support/src-only { };
substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };