Picon

Combining databases from packages installed with cabal install

Hi.

I'm configuring haddock via cabal install (see [0]) to build the
hoogle database.  The database is being installed in
~/.cabal/share/doc/$package-$version/html/$package.txt, but is not
being combined with the default database.  That is, if right after the
installation I try to search with the hoogle command for some a
function, it will not work.  I wrote the following script, which I
called cabal-install:

    #!/bin/sh

    set -e
    set -x

    cabal \
        install \
        --enable-documentation \
        --enable-library-profiling \
        --haddock-hyperlink-source \
        --haddock-hoogle \
        --haddock-html \
        "$ <at> "

    cd ~/.cabal/share/hoogle-4.2.13/databases/
    for file in ~/.cabal/share/doc/*/html/*.txt
    do
        hoo=`echo $file | sed 's/.txt$/.hoo/;s#.*/##'`
        if [ ! -f $hoo ]
        then
(Continue reading)

Christopher Done | 20 Jan 12:41 2014
Picon

Re: Combining databases from packages installed with cabal install

This is awesome, thanks for sharing. Related issue: https://github.com/haskell/cabal/issues/395

I added --force-reinstalls --reinstall and ran

time (for i in `ghc-pkg list | sed 's/    //' | grep '^[^(]' |  grep -v ':'`; do hoogle-install $i; done)

To generate hoogle entries for all my installed packages.


On 21 August 2012 17:55, Marco Túlio Pimenta Gontijo <marcotmarcot <at> gmail.com> wrote:
Hi.

I'm configuring haddock via cabal install (see [0]) to build the
hoogle database.  The database is being installed in
~/.cabal/share/doc/$package-$version/html/$package.txt, but is not
being combined with the default database.  That is, if right after the
installation I try to search with the hoogle command for some a
function, it will not work.  I wrote the following script, which I
called cabal-install:

    #!/bin/sh

    set -e
    set -x

    cabal \
        install \
        --enable-documentation \
        --enable-library-profiling \
        --haddock-hyperlink-source \
        --haddock-hoogle \
        --haddock-html \
        "$ <at> "

    cd ~/.cabal/share/hoogle-4.2.13/databases/
    for file in ~/.cabal/share/doc/*/html/*.txt
    do
        hoo=`echo $file | sed 's/.txt$/.hoo/;s#.*/##'`
        if [ ! -f $hoo ]
        then
            hoogle convert $file $hoo || true
            hoogle combine default.hoo $hoo -o /tmp/cabal-install-$$.hoo
            mv /tmp/cabal-install-$$.hoo default.hoo
        fi
    done

Basically, it searches for .txt hoogle databases installed that were not
combined yet with the default database, and combines them.  I think it would be
good if this was the default behaviour of cabal install when called with
--haddock-hoogle.  Is this a bug?

Greetings.

0: http://hackage.haskell.org/trac/hackage/ticket/517

--
marcot
http://marcot.eti.br/

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Gmane