New working flake.nix.

This commit is contained in:
John MacFarlane
2025-05-04 10:57:22 -07:00
parent bd43f4ec93
commit 07172ed07d
2 changed files with 38 additions and 51 deletions
Generated
+3 -4
View File
@@ -20,16 +20,15 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1683594133,
"narHash": "sha256-iUhLhEAgOCnexSGDsYT2ouydis09uDoNzM7UC685XGE=",
"lastModified": 1746380391,
"narHash": "sha256-0y702Qk+CDWnmpxGbkrRuF4+n1efCxRmKlBT/uMqQsc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8d447c5626cfefb9b129d5b30103344377fe09bc",
"rev": "3e0905a3fb9e1e6f8b0de9137386e40439d21471",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
+35 -47
View File
@@ -1,53 +1,41 @@
{
description = "Pandoc development";
description = "pandoc";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs:
let
overlay = final: prev: {
haskell = prev.haskell // {
packageOverrides = hfinal: hprev:
prev.haskell.packageOverrides hfinal hprev // {
crypton-connection = final.fetchFromGitHub {
owner = "kazu-yamamoto";
repo = "crypton-connection";
rev = "5c064b911e7327a4d399fd9dd057663d0d0fb256";
sha256 = "00j1nf9glbz0cnzd84vp08j9ybzjbm3b6gcamlqxxcjb31kllz4b";
};
pandoc = hfinal.callCabal2nix "pandoc" ./. { };
};
};
pandoc = final.haskell.lib.compose.justStaticExecutables final.haskellPackages.pandoc;
};
perSystem = system:
let
pkgs = import inputs.nixpkgs { inherit system; overlays = [ overlay ]; };
hspkgs = pkgs.haskellPackages;
in
{
devShell = hspkgs.shellFor {
withHoogle = true;
packages = p : [
p.pandoc
];
buildInputs = [
hspkgs.cabal-install
hspkgs.haskell-language-server
hspkgs.hlint
hspkgs.ghcid
hspkgs.ormolu
hspkgs.stylish-haskell
hspkgs.weeder
hspkgs.servant-server
hspkgs.hslua
pkgs.bashInteractive
];
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
haskellPackages = pkgs.haskellPackages;
jailbreakUnbreak = pkg:
pkgs.haskell.lib.doJailbreak (pkg.overrideAttrs (_: { meta = { }; }));
# DON'T FORGET TO PUT YOUR PACKAGE NAME HERE, REMOVING `throw`
packageName = "pandoc";
in {
packages.${packageName} =
haskellPackages.callCabal2nix packageName self rec {
# Dependency overrides go here
};
defaultPackage = pkgs.pandoc;
packages.default = self.packages.${system}.${packageName};
defaultPackage = self.packages.${system}.default;
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
haskellPackages.haskell-language-server # you must build it with your ghc to work
zlib
ghcid
cabal-install
];
inputsFrom = map (__getAttr "env") (__attrValues self.packages.${system});
};
in
{ inherit overlay; } //
inputs.flake-utils.lib.eachDefaultSystem perSystem;
devShell = self.devShells.${system}.default;
});
}