diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 82 |
1 files changed, 35 insertions, 47 deletions
@@ -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; + }); } |
