This commit is contained in:
Amy de Buitléir 2025-09-15 18:40:34 +01:00
parent 118ee240d7
commit 2d07f3ceeb
4 changed files with 41 additions and 16 deletions

View file

@ -4865,20 +4865,20 @@ together with the <em>high-level workflow</em> described in <a href="#_developme
<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">&quot;github:NixOS/nixpkgs&quot;</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">&quot;github:numtide/flake-utils&quot;</span><span class="tok-p">;</span>
<span class="hll"> <span class="tok-p">};</span>
</span>
<span class="tok-p">};</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>
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">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="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> p<span class="tok-o">.</span>extra <span class="tok-p">]);</span>
</span> <span class="tok-k">in</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="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 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-p">}</span>
<span class="tok-p">);</span>
<span class="tok-p">}</span>
@ -4886,10 +4886,8 @@ together with the <em>high-level workflow</em> described in <a href="#_developme
</div>
</div>
<div class="paragraph">
<p>Line 5 adds <code>pandoc-columns</code> as an input to this flake.
Line 8 allows the output function to reference <code>pandoc-columns</code>.
Line 12 makes a custom GHC that knows about <code>pandoc-columns</code>,
and line 17 uses the custom GHC as a build input for this flake.</p>
<p>Line 12 makes a custom GHC that knows about <code>extra</code>,
and line 16 makes that custom GHC available in the development environment.</p>
</div>
<div class="paragraph">
<p>Here&#8217;s a short Haskell program that uses the new flake.</p>
@ -5635,7 +5633,7 @@ Hello from your flake!</pre>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2025-09-15 18:36:03 IST
Last updated 2025-09-15 18:39:35 IST
</div>
</div>
</body>

View file

@ -3,7 +3,7 @@
////
$ mkdir tempwork
$ cd tempwork
$ cp Main.hs ../flake.nix .
$ cp ../Main.hs ../flake.nix .
$ git add Main.hs flake.nix
$ nix develop
$ git add flake.lock

View file

@ -0,0 +1,6 @@
import Data.List.Extra
main :: IO ()
main = do
print $ lower "ABCDE"
print $ upper "XYZ"

View file

@ -0,0 +1,21 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, pandoc-columns }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
customGhc = pkgs.haskellPackages.ghcWithPackages (p: with p; [ p.extra ]);
in
{
devShells = rec {
default = pkgs.mkShell {
buildInputs = [ customGhc ];
};
};
}
);
}