Haskell template

This commit is contained in:
Nox Sluijtman 2024-03-19 00:58:40 +01:00
parent 4af7e9bad1
commit e519db6d57
3 changed files with 42 additions and 0 deletions

1
haskell/.envrc Normal file
View file

@ -0,0 +1 @@
use flake

3
haskell/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
result
.direnv
dist-newstyle

38
haskell/flake.nix Normal file
View file

@ -0,0 +1,38 @@
{ description = "A basic Haskell flake";
# To be used in conjunction with cabal2nix
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils}:
flake-utils.lib.eachDefaultSystem (system:
let pkgs = import nixpkgs { inherit system; };
compiler = throw "add compiler version here";
in {
packages = {
default = pkgs.haskell.packages.${compiler}.mkDerivation rec {
pname = throw "insert haskell package name here\nderived from the .cabal file";
version = "0.1.0.0";
src = ./.;
isLibrary = false;
isExecutable = true;
executableHaskellDepends = with pkgs.haskellPackages; [
base
];
license = pkgs.lib.licenses.agpl3Only;
mainProgram = pname;
};
};
devShells.default = pkgs.mkShell {
buildInputs = with pkgs.haskellPackages; [
base
cabal-install
ghc
haskell-language-server
cabal2nix
];
};
});
}