# Idris2-dep-graph

Produce graphiz (dot) graph of package dependencies or module imports of Idris2 packages.

## Usage

This app works by default with [pack]https://github.com/stefan-hoeck/idris2-pack by looking up its package dir via `pack package-path`. Alternatively, you can use the same env vars as with Idris2 (e.g. `IDRIS2_PACKAGE_PATH`).

To use, run the tool in the directory of the package(s) of interest:
```bash
# Package dependency graph
#   Use `--local-only` to exclude non-local package
idris2-dep-graph pkg

# Module imports graph:
#   Use `--with-external` to include modules imported from other packages (non-transitive)
idris2-dep-graph mod

# Usually you'll just pipe the result to `dot` and save the result
idris2-dep-graph ... | dot -Tsvg > graph.svg
```

You can give it one or more .ipkg paths after the sub-command for a specific selection. If you don't specify any .ipkg paths, it will recursively look for all in the current dir.

## Example outputs on this package

### Package dependencies

![Package dependencies]./assets/pkg.svg

### Module imports

![Module imports]./assets/mod.svg