#!/bin/bash # # haddock-i: list haddock's -i parameters. # # Copyright (c) 2015-2025 Rudy Matela. # Distributed under the 3-Clause BSD licence. # # $ haddock-i # # will print -i parameters necessary for haddock to link to Haddock # documentation installed on your system, so you can: # # $ haddock-i | xargs haddock # This is a grep/sed/bash hack. # It works for all my packages, # but it isn't foolproof, # use with care. list-deps() { cat *.cabal | sed -e 's/ */\n/g' | grep -A 999 build-depends: | tail -n +2 | grep -v '^$' | while read tok do echo $tok | grep -q :$ && break # TODO: make this slightly more efficient echo $tok | grep -q '^[a-zA-Z-]*$' || continue [ "$tok" == "if" ] && continue echo "$tok" done } find-find-args() { echo '-name this-should-not-match-anything.haddock' list-deps | sed -e 's/^/-o -name /;s/$/.haddock/' } realghc=$(basename $(readlink -f /usr/bin/ghc)) find \ /usr/share/doc/ghc/html/libraries \ ~/.cabal/store/$realghc \ $(find-find-args) | sed -e 's/^/-i /'