summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2024-06-15 20:45:23 +0300
committerArtturin <Artturin@artturin.com>2024-06-15 21:02:53 +0300
commit2be37441da9a0667194c631d3ad696c812c93d6a (patch)
tree559c2830f1c69280651239879bc623fef5e3ca2f /doc
parent3e6b9369165397184774a4b7c5e8e5e46531b53f (diff)
doc: Improve the `makeSetupHook` example
also format it with nixfmt
Diffstat (limited to 'doc')
-rw-r--r--doc/build-helpers/special/makesetuphook.section.md38
1 files changed, 28 insertions, 10 deletions
diff --git a/doc/build-helpers/special/makesetuphook.section.md b/doc/build-helpers/special/makesetuphook.section.md
index e83164b7eb70..179d8d456372 100644
--- a/doc/build-helpers/special/makesetuphook.section.md
+++ b/doc/build-helpers/special/makesetuphook.section.md
@@ -9,22 +9,40 @@ pkgs.makeSetupHook {
name = "something-hook";
propagatedBuildInputs = [ pkgs.commandsomething ];
depsTargetTargetPropagated = [ pkgs.libsomething ];
-} ./script.sh
+} ./script.sh;
```
### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash {#sec-pkgs.makeSetupHook-usage-example}
```nix
-pkgs.makeSetupHook {
+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
-'')
+ # Put dependencies here if they have hooks or necessary dependencies propagated
+ # otherwise prefer direct paths to executables.
+ propagatedBuildInputs = [
+ pkgs.hello
+ pkgs.cowsay
+ ];
+ substitutions = {
+ shell = "${pkgs.bash}/bin/bash";
+ cowsay = "${pkgs.cowsay}/bin/cowsay";
+ };
+ }
+ (
+ writeScript "run-hello-hook.sh" ''
+ #!@shell@
+ # the direct path to the executable has to be here because
+ # this will be run when the file is sourced
+ # at which point '$PATH' has not yet been populated with inputs
+ @cowsay@ cow
+
+ _printHelloHook() {
+ hello
+ }
+ preConfigureHooks+=(_printHelloHook)
+ ''
+ );
```
## Attributes {#sec-pkgs.makeSetupHook-attributes}