stack-1.3.0: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Dot

Synopsis

Documentation

dot :: (StackM env m, HasEnvConfig env, MonadBaseUnlift IO m) => DotOpts -> m () Source

Visualize the project's dependencies as a graphviz graph

data DotOpts Source

Options record for stack dot

Constructors

DotOpts 

Fields

dotIncludeExternal :: !Bool

Include external dependencies

dotIncludeBase :: !Bool

Include dependencies on base

dotDependencyDepth :: !(Maybe Int)

Limit the depth of dependency resolution to (Just n) or continue until fixpoint

dotPrune :: !(Set String)

Package names to prune from the graph

dotTargets :: [Text]

stack TARGETs to trace dependencies for

dotFlags :: !(Map (Maybe PackageName) (Map FlagName Bool))

Flags to apply when calculating dependencies

dotTestTargets :: Bool

Like the "--test" flag for build, affects the meaning of dotTargets.

dotBenchTargets :: Bool

Like the "--bench" flag for build, affects the meaning of dotTargets.

data DotPayload Source

Information about a package in the dependency graph, when available.

Constructors

DotPayload 

Fields

payloadVersion :: Maybe Version

The package version.

payloadLicense :: Maybe License

The license the package was released under.

data ListDepsOpts Source

Constructors

ListDepsOpts 

Fields

listDepsDotOpts :: !DotOpts

The normal dot options.

listDepsSep :: !Text

Separator between the package name and details.

listDepsLicense :: !Bool

Print dependency licenses instead of versions.

resolveDependencies :: (Applicative m, Monad m) => Maybe Int -> Map PackageName (Set PackageName, DotPayload) -> (PackageName -> m (Set PackageName, DotPayload)) -> m (Map PackageName (Set PackageName, DotPayload)) Source

Resolve the dependency graph up to (Just depth) or until fixpoint is reached

printGraph Source

Arguments

:: (Applicative m, MonadIO m) 
=> DotOpts 
-> Set PackageName

all locals

-> Map PackageName (Set PackageName, DotPayload) 
-> m () 

Print a graphviz graph of the edges in the Map and highlight the given local packages

pruneGraph :: (Foldable f, Foldable g, Eq a) => f PackageName -> g String -> Map PackageName (Set PackageName, a) -> Map PackageName (Set PackageName, a) Source

pruneGraph dontPrune toPrune graph prunes all packages in graph with a name in toPrune and removes resulting orphans unless they are in dontPrune