diff options
author | Artturin <Artturin@artturin.com> | 2024-06-15 20:45:23 +0300 |
---|---|---|
committer | Artturin <Artturin@artturin.com> | 2024-06-15 21:02:53 +0300 |
commit | 2be37441da9a0667194c631d3ad696c812c93d6a (patch) | |
tree | 559c2830f1c69280651239879bc623fef5e3ca2f | |
parent | 3e6b9369165397184774a4b7c5e8e5e46531b53f (diff) |
doc: Improve the `makeSetupHook` example
also format it with nixfmt
-rw-r--r-- | doc/build-helpers/special/makesetuphook.section.md | 38 |
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 e83164b7eb701..179d8d456372c 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} |