aboutsummaryrefslogtreecommitdiff
path: root/haskell/flake.nix
diff options
context:
space:
mode:
authorChris Wells <chris@mathematicaster.org>2026-02-25 10:39:15 -0600
committerChris Wells <chris@mathematicaster.org>2026-02-25 10:39:15 -0600
commitf2c4d486c0e5763b9fcd92987128df262233c1a9 (patch)
treea78ac2fcd93b60daa80eb12fc8928f251377c35f /haskell/flake.nix
downloadtemplates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar.gz
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar.bz2
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar.lz
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar.xz
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.tar.zst
templates-f2c4d486c0e5763b9fcd92987128df262233c1a9.zip
Basic templates so farHEADmaster
Diffstat (limited to 'haskell/flake.nix')
-rw-r--r--haskell/flake.nix74
1 files changed, 74 insertions, 0 deletions
diff --git a/haskell/flake.nix b/haskell/flake.nix
new file mode 100644
index 0000000..a637cde
--- /dev/null
+++ b/haskell/flake.nix
@@ -0,0 +1,74 @@
+{
+ description = "Haskell project";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs";
+ nix-filter.url = "github:numtide/nix-filter";
+ flake-parts.url = "github:hercules-ci/flake-parts";
+ systems.url = "github:nix-systems/default";
+ };
+
+ outputs =
+ inputs@{
+ self,
+ flake-parts,
+ nixpkgs,
+ nix-filter,
+ ...
+ }:
+ flake-parts.lib.mkFlake { inherit self inputs; } {
+ systems = import inputs.systems;
+
+ flake.overlays.default = final: prev: {
+ haskellPackages = prev.haskellPackages.extend (
+ hfinal: _hprev: {
+ PROJECT =
+ let
+ src = nix-filter {
+ root = ./.;
+ include = [
+ "src"
+ "app"
+ "package.yaml"
+ "PROJECT.cabal"
+ ];
+ };
+ in
+ hfinal.callCabal2nix "PROJECT" src { };
+ }
+ );
+ };
+
+ perSystem =
+ {
+ config,
+ pkgs,
+ system,
+ ...
+ }:
+ {
+ _module.args.pkkgs = import nixpkgs {
+ inherit system;
+ overlays = [ self.overlays.default ];
+ };
+
+ packages = rec {
+ default = PROJECT;
+ inherit (pkgs.haskellPackages) PROJECT;
+ };
+
+ devShells.default = pkgs.haskellPackages.shellFor {
+ packages = ps: [ ];
+ withHoogle = true;
+ buildInputs = with pkgs.haskellPackages; [
+ cabal-install
+ hpack
+ hlint
+ fast-tags
+ pkgs.haskell-language-server
+ ];
+ };
+
+ };
+ };
+}