]> Git — Sourcephile - haskell/symantic-plaintext.git/blob - flake.nix
iface: rename `Symantic.{Formatter => Plaintext}`
[haskell/symantic-plaintext.git] / flake.nix
1 {
2 inputs.nixpkgs.url = "flake:nixpkgs";
3 inputs.symantic-base.url = "git+https://git.code.sourcephile.fr/~julm/symantic-base?ref=main";
4 inputs.symantic-base.inputs.nixpkgs.follows = "nixpkgs";
5 outputs = inputs: let
6 pkg = "symantic-plaintext";
7 lib = inputs.nixpkgs.lib;
8 forAllSystems = f: lib.genAttrs lib.systems.supported.hydra (system: f rec {
9 inherit system;
10 pkgs = inputs.nixpkgs.legacyPackages.${system};
11 haskellPackages = pkgs.haskellPackages.extend (with pkgs.haskell.lib; hfinal: hsuper: {
12 ${pkg} = buildFromSdist (hfinal.callCabal2nix pkg ./. {});
13 symantic-base = buildFromSdist (hfinal.callCabal2nix "symantic-base" inputs.symantic-base {});
14 });
15 });
16 in {
17 # nix -L build
18 defaultPackage = forAllSystems ({haskellPackages, ...}: haskellPackages.${pkg});
19 # nix -L develop
20 devShell = forAllSystems ({pkgs, haskellPackages, ...}:
21 haskellPackages.shellFor {
22 packages = ps: [ ps.${pkg} ];
23 nativeBuildInputs = [
24 haskellPackages.cabal-install
25 haskellPackages.ghcid
26 haskellPackages.haskell-language-server
27 haskellPackages.hlint
28 pkgs.git-chglog
29 pkgs.reuse
30 ];
31 withHoogle = false;
32 });
33 };
34 }