diff --git a/default.nix b/default.nix index bdebe748..932f0783 100644 --- a/default.nix +++ b/default.nix @@ -1,4 +1,4 @@ let pkgs = import ./nix { }; in -pkgs.packages +pkgs.packages // pkgs.checks diff --git a/nix/default.nix b/nix/default.nix index 3fcd5ab5..e76e9b57 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -5,15 +5,39 @@ let overlay = _: pkgs: + let + run = pkgs.callPackage ./run.nix { inherit tools; }; + tools = pkgs.callPackage ./tools.nix { }; + in { inherit (pkgs) nixfmt niv ormolu nixpkgs-fmt nix-linter; - cabal-fmt = pkgs.haskellPackages.cabal-fmt; - hindent = pkgs.haskellPackages.callCabal2nix "hindent" sources.hindent { }; - packages = pkgs.callPackages ./packages.nix { }; + cabal-fmt = pkgs.haskell.lib.enableSeparateBinOutput pkgs.haskellPackages.cabal-fmt; + hindent = pkgs.haskell.lib.enableSeparateBinOutput pkgs.haskellPackages.hindent; + inherit tools; + # Flake style attributes + packages = { + inherit tools run; + inherit (pkgs.gitAndTools) pre-commit; + }; + checks = tools // { + # A pre-commit-check for nix-pre-commit itself + pre-commit-check = run { + src = ../.; + hooks = { + shellcheck.enable = true; + nixpkgs-fmt.enable = true; + }; + excludes = [ + # autogenerated by niv + "nix/sources.nix$" + ]; + }; + }; }; in import nixpkgs { overlays = [ overlay ]; - config = { }; + # broken is needed for hindent to build + config = { allowBroken = true; }; inherit system; } diff --git a/nix/packages.nix b/nix/packages.nix deleted file mode 100644 index d4c2a379..00000000 --- a/nix/packages.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ niv, gitAndTools, callPackage }: -let - tools = callPackage ./tools.nix { }; -in -tools // rec { - inherit niv; - inherit (gitAndTools) pre-commit; - run = callPackage ./run.nix { inherit tools; }; - - # A pre-commit-check for nix-pre-commit itself - pre-commit-check = run { - src = ../.; - hooks = { - shellcheck.enable = true; - nixpkgs-fmt.enable = true; - }; - excludes = [ - # autogenerated by niv - "nix/sources.nix$" - ]; - }; -} diff --git a/nix/sources.json b/nix/sources.json index a07009f1..ac2ccaee 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -11,28 +11,16 @@ "url": "https://github.com/hercules-ci/gitignore/archive/2ced4519f865341adcb143c5d668f955a2cb997f.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, - "hindent": { - "branch": "master", - "description": "Haskell pretty printer", - "homepage": null, - "owner": "chrisdone", - "repo": "hindent", - "rev": "a75d4033969ecf7d4d0a5eb985d3d1abb3b9301f", - "sha256": "0g9dm3mr7wi7bk55fvswv0zcw1khgyr2bmchrg6ks82jc9znxkr6", - "type": "tarball", - "url": "https://github.com/chrisdone/hindent/archive/a75d4033969ecf7d4d0a5eb985d3d1abb3b9301f.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, "nixpkgs": { - "branch": "release-20.09", + "branch": "master", "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to", "homepage": "https://github.com/NixOS/nixpkgs", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b60f5e90cf20d08be6b26177b50b44f2c6d653f5", - "sha256": "1pfk4gmsr1z3wz5f3crfy5r306d157ncqaidnmbrcjm812iy2baq", + "rev": "3be2b567425214cd7cab693a9820717d11b0bdac", + "sha256": "12kbh6fkyq703s1vcrypra7k844m8qnhz54ilqvldjap7hj1c57w", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/b60f5e90cf20d08be6b26177b50b44f2c6d653f5.tar.gz", + "url": "https://github.com/NixOS/nixpkgs/archive/3be2b567425214cd7cab693a9820717d11b0bdac.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } diff --git a/nix/tools.nix b/nix/tools.nix index 45c9e0b5..2a2da811 100644 --- a/nix/tools.nix +++ b/nix/tools.nix @@ -16,7 +16,7 @@ , nixfmt , nix-linter , callPackage -, pythonPackages +, python39Packages , rustfmt , clippy , cargo @@ -26,10 +26,10 @@ }: { - inherit ansible-lint hlint shellcheck ormolu hindent cabal-fmt nixpkgs-fmt nixfmt nix-linter rustfmt clippy cargo html-tidy; + inherit hlint shellcheck ormolu hindent cabal-fmt nixpkgs-fmt nixfmt nix-linter rustfmt clippy cargo html-tidy; inherit (elmPackages) elm-format; inherit (haskellPackages) stylish-haskell brittany hpack fourmolu; - inherit (pythonPackages) yamllint; + inherit (python39Packages) yamllint ansible-lint; inherit (nodePackages) prettier; purty = callPackage ./purty { purty = nodePackages.purty; }; terraform-fmt = callPackage ./terraform-fmt { };