name:                dash-haskell
version:             1.0.0.4
synopsis:            Command line tool to generate Dash docsets (IDE docs) from package haddock
homepage:            http://www.github.com/jfeltz/dash-haskell
Bug-reports:         https://github.com/jfeltz/dash-haskell/issues
license:             LGPL-3
license-file:        LICENSE
author:              John P. Feltz
maintainer:          jfeltz@gmail.com
copyright:           (c) 2014 John P. Feltz 
category:            Documentation
build-type:          Simple
cabal-version:       >= 1.18
extra-source-files:  README.md 

description: 
  Dash is a framework and file format for allowing easy lookup and indexing of
  programming docs, e.g. API functions and modules. A number of plugins offer dash docset
  lookup in editors such as Emacs and Vim.  By using this tool, one can
  convert haskell package haddock(s) to docsets. 
  .
  The major benefit of dash-haskell, is that once these docsets are built, dash tools
  provide one of the few, if only solutions for offline, contextual, and project dependency
  approximate IDE documentation for Haskell. 
  .
  Summary:
  .
  > $ dash-haskell --help 
  > Usage: dash-haskell [-p|--dbprovider <provider,args>] [-o|--output <dir>]
  >                     [-q|--quiet] [-c|--cabal <file.cabal>]
  >                     [-r|--cabal-constraints executable=name, ..] [packages]
  >   additional help is also available on arguments with "dash-haskell help arg"

  > Available options:
  >   -h,--help                Show this help text
  >   -p,--dbprovider <provider,args>
  >                            a ghc package db provider: cabal|ghc|dir
  >   -o,--output <dir>        the directory to write created docsets to
  >   -q,--quiet               set to quiet output
  >   -c,--cabal <file.cabal>  the cabal file to source package dependencies from 
  >   -r,--cabal-constraints executable=name, ..
  >                            limit package results from a cabal file source, see
  >                            documentation
  >   packages                 a list of packages to specifically build, e.g.
  >                            either-1.0.1 text-1.2.0
  .
  > $ cd foo-1.2.0/ 
  > $ dash-haskell -c foo.cabal -o docsets 
  > db provider:
  >   lookup strategy: cabal sandbox db index
  >   cmd: cabal
  >   args: sandbox hc-pkg list
  >
  > processing: system-filepath-0.4.12
  >   writing files..
  >   writing plist..
  >   populating database..
  >   finished populating sqlite database..
  >
  > processing: system-fileio-0.3.14
  >   writing files..
  >   writing plist..
  >   populating database..
  >   finished populating sqlite database..
  >
  > processing: pipes-4.1.2
  >   writing files..
  >   writing plist..
  >   populating database..
  >   finished populating sqlite database..
  >
  > warning: failed to process: parsec-3.1.5
  > warning: path errors in pkg conf file:
  >  /home/jpf/local/cabal-sandboxes/dash-haskell/x86_64-linux-ghc-7.8.3-packages.conf.d/parsec-3.1.5-abf7e89cafe4e74712f678cea843c1c8.conf
  > with problem(s):
  >  missing: haddock interface file
  >  missing: html doc dir
  >
  > processing: sqlite-simple-0.4.8.0
  >   writing files..
  >   writing plist..
  >   populating database..
  >   finished populating sqlite database..
  >
  > $
  .
  Notice, the failure of parsec-3.1.5 is illustrated here to show that in this case, dash-haskell depends on haddock documentation being built for the requested package. A possible resolution in this case, if using a sandbox, is:
  .
  > $ cabal install --reinstall parsec-3.1.5 --enable-documentation
  > $ dash-haskell parsec-3.1.5 -o docsets
  .
  Versions:
  .
  The version numbering scheme for this package is defined as follows, given: 
  .
  >dash-haskell-a.b.c.d
  .
  a, b index interface or feature changes to the CLI
  .
  c, d index bug-fix and documentation updates
  .


executable dash-haskell
  main-is:             Main.hs
  other-modules:       Pipes.Db
                       Pipes.Conf
                       Pipes.FileSystem
                       Options
                       Package
                       Control.Monad.M 
                       Data.String.Util
                       Data.String.Indent
                       Haddock
                       Options.CabalConstraints
                       Options.Documentation
                       Options.Cabal
                       Options.DbProvider
                       Haddock.Sqlite
                       Haddock.Artifact
                       PackageId
                       Package.Conf

  build-depends:       Cabal                >= 1.18
                     , base                 >= 4.7 && <4.8
                     , bytestring           >= 0.10.0.1
                     , containers           >= 0.5.5.1
                     , direct-sqlite >= 2.3.13
                     , directory            >= 1.2.1.0
                     , either               >= 4.3
                     , ghc                  >= 7.8.3 && < 7.10.1
                     , mtl                  >= 2.1.3.1
                     , optparse-applicative >= 0.11.0 && <= 0.11.1
                     , pipes                >= 4.1.0
                     , process              >= 1.2.0.0
                     , sqlite-simple        >= 0.4.5.0
                     , system-fileio        >= 0.3.12 && < 0.4.0
                     , system-filepath      >= 0.3.1 && < 0.5
                     , tagsoup              >= 0.12.7
                     , text                 >= 0.7.1
                     , transformers         >= 0.3 && < 0.5
                     , parsec               >= 3.1.5
                     , haddock-api          >= 2.15.0
  ghc-options:         -Wall -rtsopts
  hs-source-dirs:      src
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/jfeltz/dash-haskell.git