TaskWarrior Dependency Visualization
Visualizes dependencies between TaskWarrior tasks.
Example
Given a set of interdependent tasks described in the TaskWarrior tutorial, the tasks are
- Exported from TaskWarrior as JSON, then
- Piped into
twdeps
, and finally - The output is directed to a PNG file.
Result:
For the impatient: The JSON export is also available as party.json. If you download it, the command
$ twdeps -f png party.json > party.png
will generate party.png
in the current directory.
Installation
$ gem install twdeps
Usage
# Create a dependency graph as PNG and pipe it to a file
# See [Limitations](Limitations) below for why we need the extra task parms
task export rc.json.array=on rc.verbose=nothing | twdeps > deps.png
# Same but specify output format
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg > deps.svg
# Create a graph from a previously exported file
task export rc.json.array=on rc.verbose=nothing > tasks.json
cat tasks.json | twdeps > deps.png
# Display graph in browser without creating an intermediate file
# Requires bcat to be installed
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg | bcat
Dependencies
The graph is generated with ruby-graphviz, which in turn requires a local Graphviz installation (e.g. brew install graphviz
on a Mac or sudo apt-get install graphviz
on Ubuntu Linux).
bcat is required for piping into a browser.
Limitations
Due to two bugs in its JSON export, TaskWarrior versions before 2.1 need the additional command line options rc.json.array=on
and rc.verbose=nothing
.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request