mirror of
https://codeberg.org/mhwombat/nix-book.git
synced 2026-05-14 20:31:13 +08:00
temp
This commit is contained in:
parent
6a5482afcf
commit
d9ba23304f
2 changed files with 119 additions and 9 deletions
124
index.html
124
index.html
|
|
@ -5139,14 +5139,112 @@ However, you can use any of the flake reference styles defined in <a href="#flak
|
|||
<div class="listingblock">
|
||||
<div class="title">hello-again</div>
|
||||
<div class="content">
|
||||
<pre class="pygments highlight nowrap"><code data-lang="bash"><div class="lineno"><table class="linenotable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span>cat:<span class="tok-w"> </span>hello-again:<span class="tok-w"> </span>No<span class="tok-w"> </span>such<span class="tok-w"> </span>file<span class="tok-w"> </span>or<span class="tok-w"> </span>directory
|
||||
<pre class="pygments highlight nowrap"><code data-lang="bash"><div class="lineno"><table class="linenotable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
||||
<span class="normal">2</span>
|
||||
<span class="normal">3</span>
|
||||
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="tok-ch">#!/usr/bin/env sh</span>
|
||||
|
||||
<span class="tok-nb">echo</span><span class="tok-w"> </span><span class="tok-s2">"I'm a flake, but I'm running a command defined in a non-flake package."</span>
|
||||
hello-nix
|
||||
</pre></div></td></tr></table></div></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="listingblock">
|
||||
<div class="title">flake.nix</div>
|
||||
<div class="content">
|
||||
<pre class="pygments highlight nowrap"><code data-lang="nix"><div class="lineno"><table class="linenotable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span>cat<span class="tok-p">:</span> flake<span class="tok-o">.</span>nix<span class="tok-p">:</span> No such file <span class="tok-ow">or</span> directory
|
||||
<pre class="pygments highlight nowrap"><code data-lang="nix"><div class="lineno"><table class="linenotable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span></pre></div></td><td class="code"><div><pre><span></span><span class="tok-p">{</span>
|
||||
<span class="tok-ss">inputs</span> <span class="tok-o">=</span> <span class="tok-p">{</span>
|
||||
nixpkgs<span class="tok-o">.</span><span class="tok-ss">url</span> <span class="tok-o">=</span> <span class="tok-s2">"github:NixOS/nixpkgs"</span><span class="tok-p">;</span>
|
||||
flake-utils<span class="tok-o">.</span><span class="tok-ss">url</span> <span class="tok-o">=</span> <span class="tok-s2">"github:numtide/flake-utils"</span><span class="tok-p">;</span>
|
||||
<span class="hll"> hello-flake<span class="tok-o">.</span><span class="tok-ss">url</span> <span class="tok-o">=</span> <span class="tok-s2">"git+https://codeberg.org/mhwombat/hello-flake"</span><span class="tok-p">;</span>
|
||||
</span> <span class="tok-p">};</span>
|
||||
|
||||
<span class="hll"> <span class="tok-ss">outputs</span> <span class="tok-o">=</span> <span class="tok-p">{</span> self<span class="tok-p">,</span> nixpkgs<span class="tok-p">,</span> flake-utils<span class="tok-p">,</span> hello-flake <span class="tok-p">}:</span>
|
||||
</span> 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-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">"hello-again"</span><span class="tok-p">;</span>
|
||||
|
||||
<span class="tok-ss">src</span> <span class="tok-o">=</span> <span class="tok-l">./.</span><span class="tok-p">;</span>
|
||||
|
||||
<span class="tok-ss">unpackPhase</span> <span class="tok-o">=</span> <span class="tok-s2">"true"</span><span class="tok-p">;</span>
|
||||
|
||||
<span class="tok-ss">buildPhase</span> <span class="tok-o">=</span> <span class="tok-s2">":"</span><span class="tok-p">;</span>
|
||||
|
||||
<span class="tok-ss">installPhase</span> <span class="tok-o">=</span>
|
||||
<span class="tok-s tok-s-Multiline">''</span>
|
||||
<span class="tok-s tok-s-Multiline"> mkdir -p $out/bin</span>
|
||||
<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="hll"><span class="tok-s tok-s-Multiline"> # modify the hello-again script so it can find hello-flake</span>
|
||||
</span><span class="hll"><span class="tok-s tok-s-Multiline"> HELLO=$(type -p hello-flake)</span>
|
||||
</span><span class="hll"><span class="tok-s tok-s-Multiline"> sed "s_hello-nix_"$HELLO"_" --in-place $out/bin/hello-again</span>
|
||||
</span><span class="tok-s tok-s-Multiline"> ''</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> hello-flake <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>
|
||||
<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-p">}</span>
|
||||
<span class="tok-p">);</span>
|
||||
<span class="tok-p">}</span>
|
||||
</pre></div></td></tr></table></div></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -5156,12 +5254,24 @@ However, you can use any of the flake reference styles defined in <a href="#flak
|
|||
<div class="literalblock">
|
||||
<div class="content">
|
||||
<pre class="nowrap">$ nix run
|
||||
path '/home/amy/codeberg/nix-book/source/recipes/build/flake/tempwork' does not contain a 'flake.nix', searching up
|
||||
error: Path 'source/recipes/build/flake' in the repository "/home/amy/codeberg/nix-book" is not tracked by Git.
|
||||
error:
|
||||
… while calling the 'getAttr' builtin
|
||||
at <nix/derivation-internal.nix>:50:17:
|
||||
49| value = commonAttrs // {
|
||||
50| outPath = builtins.getAttr outputName strict;
|
||||
| ^
|
||||
51| drvPath = strict.drvPath;
|
||||
|
||||
To make it visible to Nix, run:
|
||||
… while calling the 'derivationStrict' builtin
|
||||
at <nix/derivation-internal.nix>:37:12:
|
||||
36|
|
||||
37| strict = derivationStrict drvAttrs;
|
||||
| ^
|
||||
38|
|
||||
|
||||
git -C "/home/amy/codeberg/nix-book" add "source/recipes/build/flake"</pre>
|
||||
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
|
||||
|
||||
error: Dependency is not of a valid type: element 1 of buildInputs for hello-again</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="paragraph">
|
||||
|
|
@ -5484,7 +5594,7 @@ Hello from your flake!</pre>
|
|||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2025-09-15 15:52:55 IST
|
||||
Last updated 2025-09-15 15:53:36 IST
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
echo "I'm a flake, but I'm running a command defined in a non-flake package."
|
||||
hello-nix
|
||||
echo "I'm a flake, and I'm running a command defined in a another flake."
|
||||
hello-flake
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue