summary refs log tree commit diff
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2023-01-28 21:57:21 +0200
committerArtturin <Artturin@artturin.com>2023-02-07 21:02:02 +0200
commit680309fc9ca3cfe06e02509134427215f1079310 (patch)
treeba4b382797bf05a10eafe35c59f923e32619e52c
parent8f171925b3a0edbdc6611eef50eb07ef991fc7a6 (diff)
downloadnixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar.gz
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar.bz2
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar.lz
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar.xz
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.tar.zst
nixpkgs-680309fc9ca3cfe06e02509134427215f1079310.zip
add docs for makeSetupHook
-rw-r--r--doc/builders/special.xml1
-rw-r--r--doc/builders/special/makesetuphook.section.md37
-rw-r--r--pkgs/build-support/trivial-builders.nix29
3 files changed, 39 insertions, 28 deletions
diff --git a/doc/builders/special.xml b/doc/builders/special.xml
index 525eb71abfe..c9711348198 100644
--- a/doc/builders/special.xml
+++ b/doc/builders/special.xml
@@ -6,6 +6,7 @@
   This chapter describes several special builders.
  </para>
  <xi:include href="special/fhs-environments.section.xml" />
+ <xi:include href="special/makesetuphook.section.xml" />
  <xi:include href="special/mkshell.section.xml" />
  <xi:include href="special/darwin-builder.section.xml" />
 </chapter>
diff --git a/doc/builders/special/makesetuphook.section.md b/doc/builders/special/makesetuphook.section.md
new file mode 100644
index 00000000000..90d75c5491c
--- /dev/null
+++ b/doc/builders/special/makesetuphook.section.md
@@ -0,0 +1,37 @@
+# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook}
+
+`pkgs.makeSetupHook` is a builder that produces hooks that go in to `nativeBuildInputs`
+
+## Usage {#sec-pkgs.makeSetupHook-usage}
+
+```nix
+pkgs.makeSetupHook {
+  name = "something-hook";
+  propagatedBuildInputs = [ pkgs.commandsomething ];
+  depsTargetTargetPropagated = [ pkgs.libsomething ];
+} ./script.sh
+```
+
+#### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash
+
+```nix
+pkgs.makeSetupHook {
+    name = "run-hello-hook";
+    propagatedBuildInputs = [ pkgs.hello ];
+    substitutions = { shell = "${pkgs.bash}/bin/bash"; };
+    passthru.tests.greeting = callPackage ./test { };
+    meta.platforms = lib.platforms.linux;
+} (writeScript "run-hello-hook.sh" ''
+    #!@shell@
+    hello
+'')
+```
+
+## Attributes
+
+* `name` Set the name of the hook.
+* `propagatedBuildInputs` Runtime dependencies (such as binaries) of the hook.
+* `depsTargetTargetPropagated` Non-binary dependencies.
+* `meta`
+* `passthru`
+* `substitutions` Variables for `substituteAll`
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index c7cc61262a0..413ed65852f 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -593,34 +593,7 @@ rec {
     in linkFarm name (map mkEntryFromDrv drvs);
 
 
-  /*
-   * Make a package that just contains a setup hook with the given contents.
-   * This setup hook will be invoked by any package that includes this package
-   * as a buildInput. Optionally takes a list of substitutions that should be
-   * applied to the resulting script.
-   *
-   * Examples:
-   * # setup hook that depends on the hello package and runs ./myscript.sh
-   * myhellohook = makeSetupHook { propagatedBuildInputs = [ hello ]; } ./myscript.sh;
-   *
-   * # writes a Linux-exclusive setup hook where @bash@ myscript.sh is substituted for the
-   * # bash interpreter.
-   * myhellohookSub = makeSetupHook {
-   *                 name = "myscript-hook";
-   *                 propagatedBuildInputs = [ hello ];
-   *                 substitutions = { bash = "${pkgs.bash}/bin/bash"; };
-   *                 meta.platforms = lib.platforms.linux;
-   *               } ./myscript.sh;
-   *
-   * # setup hook with a package test
-   * myhellohookTested = makeSetupHook {
-   *                 name = "myscript-hook";
-   *                 propagatedBuildInputs = [ hello ];
-   *                 substitutions = { bash = "${pkgs.bash}/bin/bash"; };
-   *                 meta.platforms = lib.platforms.linux;
-   *                 passthru.tests.greeting = callPackage ./test { };
-   *               } ./myscript.sh;
-   */
+  # docs in doc/builders/special/makesetuphook.section.md
   makeSetupHook =
     { name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook"
     , deps ? [ ]