Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deuill/grawkit
The Awksome Git Graph Generator
https://github.com/deuill/grawkit
awk git graph svg
Last synced: 3 days ago
JSON representation
The Awksome Git Graph Generator
- Host: GitHub
- URL: https://github.com/deuill/grawkit
- Owner: deuill
- License: mit
- Created: 2016-12-18T02:07:18.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T17:41:45.000Z (3 months ago)
- Last Synced: 2025-01-04T07:18:34.064Z (10 days ago)
- Topics: awk, git, graph, svg
- Language: Awk
- Homepage: https://grawkit.deuill.org
- Size: 212 KB
- Stars: 172
- Watchers: 5
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Grawkit - The Awksome Git Graph Generator [![MIT License][license-svg]][license-url]
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"][orthogonal-git] post. Yes, this took way longer to write than the post itself.
## Testing & Documentation
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`.
## Installation
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`.## Status & Usage
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`:```sh
git commit -m "Commit on master"
git commit -m "More stuff"git branch test-stuff
git checkout test-stuffgit commit -m 'Testing stuff'
git commitgit checkout master
git commit
```You can execute either:
```sh
cat test.txt | grawkit
# or
grawkit test.txt
```Which will produce SVG markup to standard output, rendered as:
## License
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.
[orthogonal-git]: https://deuill.org/post/orthogonal-git-workflow/
[license-url]: https://github.com/deuill/grawkit/blob/master/LICENSE
[license-svg]: https://img.shields.io/badge/license-MIT-blue.svg