diff options
author | Bas van Dijk <v.dijk.bas@gmail.com> | 2017-08-30 14:40:54 +0200 |
---|---|---|
committer | Bas van Dijk <v.dijk.bas@gmail.com> | 2017-08-30 14:40:54 +0200 |
commit | e410a191a1e6cb041cc62d14d9823b91d054b41c (patch) | |
tree | 427810ba5434718f0140c12830655974b1d9434a /pkgs/development/haskell-modules | |
parent | 60bdca87e3c014a18188b68848a3a97b6fd96228 (diff) | |
download | nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar.gz nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar.bz2 nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar.lz nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar.xz nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.tar.zst nixlib-e410a191a1e6cb041cc62d14d9823b91d054b41c.zip |
haskell: add the checkUnusedPackages function including docs
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r-- | pkgs/development/haskell-modules/lib.nix | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix index 43723b807741..6da19794f6f4 100644 --- a/pkgs/development/haskell-modules/lib.nix +++ b/pkgs/development/haskell-modules/lib.nix @@ -1,5 +1,5 @@ # TODO(@Ericson2314): Remove `pkgs` param, which is only used for -# `buildStackProject` and `justStaticExecutables` +# `buildStackProject`, `justStaticExecutables` and `checkUnusedPackages` { pkgs, lib }: rec { @@ -108,6 +108,22 @@ rec { buildStrictly = pkg: buildFromSdist (appendConfigureFlag pkg "--ghc-option=-Wall --ghc-option=-Werror"); + checkUnusedPackages = + { ignoreEmptyImports ? false + , ignoreMainModule ? false + , ignorePackages ? [] + } : drv : + overrideCabal (appendConfigureFlag drv "--ghc-option=-ddump-minimal-imports") (_drv: { + postBuild = with lib; + let args = concatStringsSep " " ( + optional ignoreEmptyImports "--ignore-empty-imports" ++ + optional ignoreMainModule "--ignore-main-module" ++ + map (pkg: "--ignore-package ${pkg}") ignorePackages + ); + in "${pkgs.haskellPackages.packunused}/bin/packunused" + + optionalString (args != "") " ${args}"; + }); + buildStackProject = pkgs.callPackage ./generic-stack-builder.nix { }; triggerRebuild = drv: i: overrideCabal drv (drv: { postUnpack = ": trigger rebuild ${toString i}"; }); |