about summary refs log tree commit diff
path: root/maintainers
diff options
context:
space:
mode:
authorMalte Brandy <malte.brandy@maralorn.de>2022-03-23 13:03:31 +0100
committerMalte Brandy <malte.brandy@maralorn.de>2022-03-23 13:03:31 +0100
commitfa552e76e681b3b84b9917a09c40201799ded4f0 (patch)
treea79047b7ed0f75f7f153976aa84259970bdd3bea /maintainers
parentb86264453e2db2e15091430dee23e51b448c1e02 (diff)
maintainers/scripts/haskell: add script to find broken maintained packages
Diffstat (limited to 'maintainers')
-rw-r--r--maintainers/scripts/haskell/maintained-broken-pkgs.nix22
1 files changed, 22 insertions, 0 deletions
diff --git a/maintainers/scripts/haskell/maintained-broken-pkgs.nix b/maintainers/scripts/haskell/maintained-broken-pkgs.nix
new file mode 100644
index 0000000000000..7416bfa46ee0d
--- /dev/null
+++ b/maintainers/scripts/haskell/maintained-broken-pkgs.nix
@@ -0,0 +1,22 @@
+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;
+}