haskell: add the checkUnusedPackages function including docs
This commit is contained in:
@@ -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}"; });
|
||||
|
||||
Reference in New Issue
Block a user