extract-dependencies-0.1.0.0: src/Development/ExtractDependencies.hs
module Development.ExtractDependencies where
import Distribution.Package
import Distribution.PackageDescription
import Distribution.PackageDescription.Parse
import Distribution.PackageDescription.Remote
extractDependencies :: String -> IO [String]
extractDependencies npkg = do
ppkg <- getPackageLatest npkg
case ppkg of
ParseOk _ info ->
case condLibrary info of
Just lib -> return $ dependencyName <$> condTreeConstraints lib
Nothing -> error "Package is not a library"
_ -> error "Failed to parse package description"
where
dependencyName (Dependency name _) = unPackageName name