mirror of
https://codeberg.org/mhwombat/nix-book.git
synced 2026-01-17 12:08:07 +08:00
temp
This commit is contained in:
parent
972faca3be
commit
118ee240d7
3 changed files with 21 additions and 24 deletions
35
index.html
35
index.html
|
|
@ -4861,26 +4861,24 @@ together with the <em>high-level workflow</em> described in <a href="#_developme
|
|||
<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></pre></div></td><td class="code"><div><pre><span></span><span class="tok-p">{</span>
|
||||
<span class="normal">21</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"> pandoc-columns<span class="tok-o">.</span><span class="tok-ss">url</span> <span class="tok-o">=</span> <span class="tok-s2">"/home/amy/github/pandoc-columns"</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> pandoc-columns <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="hll"> <span class="tok-p">};</span>
|
||||
</span>
|
||||
<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> pandoc-columns <span class="tok-p">}:</span>
|
||||
<span class="hll"> 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> <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="hll"> <span class="tok-ss">customGhc</span> <span class="tok-o">=</span> pkgs<span class="tok-o">.</span>haskellPackages<span class="tok-o">.</span>ghcWithPackages <span class="tok-p">(</span>p<span class="tok-p">:</span> <span class="tok-k">with</span> p<span class="tok-p">;</span> <span class="tok-p">[</span> pandoc-columns <span class="tok-p">]);</span>
|
||||
</span> <span class="tok-k">in</span>
|
||||
<span class="tok-p">{</span>
|
||||
<span class="tok-ss">customGhc</span> <span class="tok-o">=</span> pkgs<span class="tok-o">.</span>haskellPackages<span class="tok-o">.</span>ghcWithPackages <span class="tok-p">(</span>p<span class="tok-p">:</span> <span class="tok-k">with</span> p<span class="tok-p">;</span> <span class="tok-p">[</span> extra <span class="tok-p">]);</span>
|
||||
<span class="hll"> <span class="tok-k">in</span>
|
||||
</span> <span class="tok-p">{</span>
|
||||
<span class="tok-ss">devShells</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
|
||||
<span class="tok-ss">default</span> <span class="tok-o">=</span> pkgs<span class="tok-o">.</span>mkShell <span class="tok-p">{</span>
|
||||
<span class="hll"> <span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> customGhc <span class="tok-p">];</span>
|
||||
</span> <span class="tok-p">};</span>
|
||||
<span class="tok-p">};</span>
|
||||
<span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> customGhc <span class="tok-p">];</span>
|
||||
<span class="hll"> <span class="tok-p">};</span>
|
||||
</span> <span class="tok-p">};</span>
|
||||
<span class="tok-p">}</span>
|
||||
<span class="tok-p">);</span>
|
||||
<span class="tok-p">}</span>
|
||||
|
|
@ -4923,10 +4921,11 @@ and line 17 uses the custom GHC as a build input for this flake.</p>
|
|||
<no location info>: error: [GHC-49196] Can't find Main.hs
|
||||
*** Exception: ExitFailure 1
|
||||
$ nix develop
|
||||
$ runghc Main.hs # Works in development environemnt
|
||||
error: Path 'source/recipes/devshell/haskell-pkg/tempwork' in the repository "/home/amy/codeberg/nix-book" is not tracked by Git.
|
||||
|
||||
<no location info>: error: [GHC-49196] Can't find Main.hs
|
||||
*** Exception: ExitFailure 1</pre>
|
||||
To make it visible to Nix, run:
|
||||
|
||||
git -C "/home/amy/codeberg/nix-book" add "source/recipes/devshell/haskell-pkg/tempwork"</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -5636,7 +5635,7 @@ Hello from your flake!</pre>
|
|||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2025-09-15 18:30:35 IST
|
||||
Last updated 2025-09-15 18:36:03 IST
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
customGhc = pkgs.haskellPackages.ghcWithPackages (p: with p; [ extra ]);
|
||||
customGhc = pkgs.haskellPackages.ghcWithPackages (p: with p; [ p.extra ]);
|
||||
in
|
||||
{
|
||||
devShells = rec {
|
||||
|
|
|
|||
|
|
@ -21,16 +21,14 @@ it's usually more convenient to use `haskell-flake` as described in <<#haskell-f
|
|||
together with the _high-level workflow_ described in <<_development_workflows>>.
|
||||
====
|
||||
|
||||
[source,nix,linenums,highlight='5,8,12,17']
|
||||
[source,nix,linenums,highlight='11,16']
|
||||
.flake.nix
|
||||
....
|
||||
include::flake.nix[]
|
||||
....
|
||||
|
||||
Line 5 adds `pandoc-columns` as an input to this flake.
|
||||
Line 8 allows the output function to reference `pandoc-columns`.
|
||||
Line 12 makes a custom GHC that knows about `pandoc-columns`,
|
||||
and line 17 uses the custom GHC as a build input for this flake.
|
||||
Line 12 makes a custom GHC that knows about `extra`,
|
||||
and line 16 makes that custom GHC available in the development environment.
|
||||
|
||||
Here's a short Haskell program that uses the new flake.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue