summaryrefslogtreecommitdiff
path: root/maintainers/scripts/haskell/maintained-broken-pkgs.nix
blob: b4ee9420ee882819777ddefe29c31394a8d358b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let
  nixpkgs = import ../../..;
  inherit (nixpkgs { }) haskellPackages lib;
  maintainedPkgs = lib.filterAttrs (
    _: v: builtins.length (v.meta.maintainers or [ ]) > 0
  ) haskellPackages;
  brokenPkgs = lib.filterAttrs (_: v: v.meta.broken) maintainedPkgs;
  transitiveBrokenPkgs = lib.filterAttrs (
    _: v: !(builtins.tryEval (v.outPath or null)).success && !v.meta.broken
  ) maintainedPkgs;
  infoList =
    pkgs:
    lib.concatStringsSep "\n" (
      lib.mapAttrsToList (name: drv: "${name} ${(builtins.elemAt drv.meta.maintainers 0).github}") pkgs
    );
in
{
  report = ''
    BROKEN:
    ${infoList brokenPkgs}

    TRANSITIVE BROKEN:
    ${infoList transitiveBrokenPkgs}
  '';
  transitiveErrors = builtins.attrValues transitiveBrokenPkgs;
}