This commit is contained in:
Amy de Buitléir 2025-09-15 15:40:36 +01:00
parent fd43fd4f00
commit da54eaeb3f
2 changed files with 17 additions and 20 deletions

View file

@ -5424,10 +5424,10 @@ hello-nix
flake-utils<span class="tok-o">.</span>lib<span class="tok-o">.</span>eachDefaultSystem <span class="tok-p">(</span>system<span class="tok-p">:</span>
<span class="tok-k">let</span>
<span class="tok-ss">pkgs</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> nixpkgs <span class="tok-p">{</span> <span class="tok-k">inherit</span> system<span class="tok-p">;</span> <span class="tok-p">};</span>
<span class="tok-ss">helloNix</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> hello-nix <span class="tok-p">{</span> <span class="tok-k">inherit</span> pkgs<span class="tok-p">;</span> <span class="tok-p">};</span>
<span class="tok-k">in</span>
<span class="hll"> <span class="tok-p">{</span>
</span> <span class="tok-ss">packages</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
<span class="hll"> <span class="tok-ss">helloNix</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> hello-nix <span class="tok-p">{</span> <span class="tok-k">inherit</span> pkgs<span class="tok-p">;</span> <span class="tok-p">};</span>
</span> <span class="tok-k">in</span>
<span class="tok-p">{</span>
<span class="tok-ss">packages</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
<span class="tok-ss">hello</span> <span class="tok-o">=</span> pkgs<span class="tok-o">.</span>stdenv<span class="tok-o">.</span>mkDerivation <span class="tok-k">rec</span> <span class="tok-p">{</span>
<span class="tok-ss">name</span> <span class="tok-o">=</span> <span class="tok-s2">&quot;hello-again&quot;</span><span class="tok-p">;</span>
@ -5443,16 +5443,16 @@ hello-nix
<span class="tok-s tok-s-Multiline"> cp $src/hello-again $out/bin</span>
<span class="tok-s tok-s-Multiline"> chmod +x $out/bin/hello-again</span>
<span class="tok-s tok-s-Multiline"> # modify the hello-again script so it can find hello-nix</span>
<span class="tok-s tok-s-Multiline"> HELLO=$(type -p hello-nix)</span>
<span class="hll"><span class="tok-s tok-s-Multiline"> sed &quot;s_hello-nix_&quot;$HELLO&quot;_&quot; --in-place $out/bin/hello-again</span>
</span><span class="hll"><span class="tok-s tok-s-Multiline"> &#39;&#39;</span><span class="tok-p">;</span>
</span><span class="hll">
</span>
<span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> helloNix <span class="tok-p">];</span>
<span class="tok-p">};</span>
<span class="hll"> <span class="tok-ss">default</span> <span class="tok-o">=</span> hello<span class="tok-p">;</span>
</span> <span class="tok-p">};</span>
<span class="hll"><span class="tok-s tok-s-Multiline"> # modify the hello-again script so it can find hello-nix</span>
</span><span class="hll"><span class="tok-s tok-s-Multiline"> HELLO=$(type -p hello-nix)</span>
</span><span class="hll"><span class="tok-s tok-s-Multiline"> sed &quot;s_hello-nix_&quot;$HELLO&quot;_&quot; --in-place $out/bin/hello-again</span>
</span><span class="tok-s tok-s-Multiline"> &#39;&#39;</span><span class="tok-p">;</span>
<span class="hll"> <span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> helloNix <span class="tok-p">];</span>
</span> <span class="tok-p">};</span>
<span class="tok-ss">default</span> <span class="tok-o">=</span> hello<span class="tok-p">;</span>
<span class="tok-p">};</span>
<span class="tok-ss">apps</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
<span class="tok-ss">hello</span> <span class="tok-o">=</span> flake-utils<span class="tok-o">.</span>lib<span class="tok-o">.</span>mkApp <span class="tok-p">{</span> <span class="tok-ss">drv</span> <span class="tok-o">=</span> self<span class="tok-o">.</span>packages<span class="tok-o">.</span><span class="tok-si">${</span>system<span class="tok-si">}</span><span class="tok-o">.</span>hello<span class="tok-p">;</span> <span class="tok-p">};</span>
@ -5499,9 +5499,6 @@ In that case, adding the dependency to <code>buildInputs</code> is sufficient.</
<div class="literalblock">
<div class="content">
<pre class="nowrap">$ nix run
this derivation will be built:
/nix/store/jdh3r0w60rddfk1k0wfp6dcxj9ld0xhi-hello-again.drv
building '/nix/store/jdh3r0w60rddfk1k0wfp6dcxj9ld0xhi-hello-again.drv'...
I'm a flake, but I'm running a command defined in a non-flake package.
Hello from your nix package!</pre>
</div>
@ -5567,7 +5564,7 @@ Hello from your flake!</pre>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-09-15 15:39:36 IST
Last updated 2025-09-15 15:40:07 IST
</div>
</div>
</body>

View file

@ -30,8 +30,8 @@ $# cat hello-again
$# cat flake.nix
....
Lines 5-8 and 17 were explained in <<#devshell-nix-non-flake>>.
As expected, we need to add `helloNix` as a build input, which we do in line 36.
Lines 5-8 and 15 were explained in <<#devshell-nix-non-flake>>.
As expected, we need to add `helloNix` as a build input, which we do in line 40.
That does make it available at build and runtime, but it doesn't put it on the path,
so our `hello-again` script won't be able to find it.