Ajout : rangement.
[tool/hledger.git] / script / ghc-pkg-clean
diff --git a/script/ghc-pkg-clean b/script/ghc-pkg-clean
new file mode 100755 (executable)
index 0000000..99b23e6
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh -eux
+
+# DESCRIPTION: unregister broken GHC packages.
+# Run this a few times to resolve dependency rot in installed packages.
+# ghc-pkg-clean -f cabal/dev/packages*.conf also works.
+packages=$(ghc-pkg check $* 2>&1 |
+       grep problems |
+       awk '{print $6}' |
+       sed -e 's/:$//'
+ )
+for p in $packages
+ do
+       echo unregistering $p
+       ghc-pkg "$@" unregister $p
+ done