Grawkit is a tool that helps build SVG graphs from git command-line descriptions, and is built in Awk.
This tool was created in support of the "Orthogonal Git Workflow" post. Yes, this took way longer to write than the post itself.
A Makefile
is provided for running tests and producing documentation for Grawkit. Run make help
in the project root for more information.
A full test-suite is provided (depending only on make
and awk
), which should serve as a good example of the existing feature-set. Run it with make test
.
Copy the included grawkit
AWK script into your local search path (most commonly
$HOME/.local/bin
), or just use it directly in this folder. Grawkit should work with most
POSIX-compatible AWK implementations, and has been tested against gawk
, nawk
, busybox awk
, and goawk
.
Grawkit has basic support for common git
commands such as git branch
, git tag
and git merge
, allowing for fairly complex graphs. The integrated test-suite serves as an example, check the tests
folder for more.
In order to use this tool, either run the grawkit
executable against a file containing supported
git
commands (any command not recognized will be silently ignored), or pass these in standard
input. For instance, given the following file test.txt
:
git commit -m "Commit on master"
git commit -m "More stuff"
git branch test-stuff
git checkout test-stuff
git commit -m 'Testing stuff'
git commit
git checkout master
git commit
You can execute either:
cat test.txt | grawkit
# or
grawkit test.txt
Which will produce SVG markup to standard output, rendered as:
All code in this repository is covered by the terms of the MIT License, the full text of which can be found in the LICENSE file.