haskell: add the checkUnusedPackages function including docs

This commit is contained in:
Bas van Dijk
2017-08-30 14:40:54 +02:00
parent 60bdca87e3
commit e410a191a1
2 changed files with 73 additions and 1 deletions
+17 -1
View File
@@ -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}"; });