aboutsummaryrefslogtreecommitdiffstats
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..21038e8
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,48 @@
+{
+ description = "gsa-parser";
+
+ inputs.haskellNix.url = "github:input-output-hk/haskell.nix";
+ inputs.nixpkgs.follows = "haskellNix/nixpkgs-unstable";
+ inputs.flake-utils.url = "github:numtide/flake-utils";
+
+ outputs = { self, nixpkgs, flake-utils, haskellNix }:
+ flake-utils.lib.eachDefaultSystem (system:
+ let
+ overlay = self: _: {
+ hsPkgs =
+ self.haskell-nix.project' rec {
+ src = ./.;
+ compiler-nix-name = "ghc8107";
+ shell = {
+ tools = {
+ cabal = { };
+ ghcid = { };
+ haskell-language-server = { };
+ hlint = { };
+ ormolu = { };
+ };
+ ## ormolu that uses ImportQualifiedPost.
+ ## To use, remove ormolu from the shell.tools section above, and uncomment the following lines.
+ # buildInputs =
+ # let
+ # ormolu = pkgs.haskell-nix.tool compiler-nix-name "ormolu" "latest";
+ # ormolu-wrapped = pkgs.writeShellScriptBin "ormolu" ''
+ # ${ormolu}/bin/ormolu --ghc-opt=-XImportQualifiedPost $@
+ # '';
+ # in
+ # [ ormolu-wrapped ];
+ };
+ };
+ };
+ pkgs = import nixpkgs {
+ inherit system;
+ overlays = [
+ haskellNix.overlay
+ overlay
+ ];
+ };
+ flake = pkgs.hsPkgs.flake { };
+ in
+ flake // { defaultPackage = flake.packages."gsa-parser:exe:gsa-parser-exe"; }
+ );
+}