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
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";