precis-0.5.0: src/Precis/Cabal.hs
{-# OPTIONS -Wall #-}
--------------------------------------------------------------------------------
-- |
-- Module : Precis.Cabal
-- Copyright : (c) Stephen Tetley 2010
-- License : BSD3
--
-- Maintainer : Stephen Tetley <stephen.tetley@gmail.com>
-- Stability : highly unstable
-- Portability : to be determined.
--
-- Import module for Cabal libs
--
--------------------------------------------------------------------------------
module Precis.Cabal
(
module Precis.Cabal.Datatypes
, ModName
, getModName
, extractPackageInfo
) where
import Precis.Cabal.CabalPackage
import Precis.Cabal.Datatypes
import Precis.Cabal.InterimDatatypes
import Precis.Cabal.ResolveM
import Control.Monad
extractPackageInfo :: FilePath -> IO (Either CabalFileError Package)
extractPackageInfo path =
extractPrecis path >>= \ans ->
case ans of
Left err -> return $ Left err
Right precis -> liftM Right $ buildPackage precis
buildPackage :: CabalPrecis -> IO Package
buildPackage precis = resolvePrecis precis known_extensions >>= \(e,i,u) ->
return $ Package { package_name = pkg_name $ precis
, package_version = pkg_version $ precis
, exposed_modules = e
, internal_modules = i
, unresolved_modules = u
}