An extensible command line tool for various software development tasks. flowtool is developed to become a platform for universal task automatisation through the power of the Python Programming Language and it's many libraries.
Choose your favourite components from:
- flowtool-gitflow: general git shortcuts and workflow helpers (still alpha featurewise, but stable).
- flowtool-githooks: adds commands to install and manage hooks in your local git repositories.
- flowtool-githooks-demo: some example git hooks that you can use to validate files you commit in you git or push to your remotes (i.e. shellcheck, pylint, yamllint, du and more).
- flowtool-python: some functions/commands especially useful for python programmers.
- flowtool-versioning: an automated versioning system.
- flowtool-releasing: an automated release process for python packages to PyPI (still as good as a shell script, but soon this shall also change).
- flowtool-all: meta package to install all major components in one go.
Try it out:
pip install flowtool-gitflow pip install flowtool-githooks pip install flowtool-githook-demo pip install flowtool-python pip install flowtool-versioning pip install flowtool-release pip install flowtool-all
flowtool installs a new shell command into your (virtual) environment. The command is obviously named flowtool and has also a quick alias: ft.
Freshly installed flowtool-base brings only one command:
flowtool --help flowtool self-info ft self-info
Keep it up to date via:
ft self-update --help ft self-update -a -y
To enable completion in your current shell session, run:
eval "$(_FLOWTOOL_COMPLETE=source flowtool)" eval "$(_FT_COMPLETE=source ft)"
You can also add the output of
_FLOWTOOL_COMPLETE=source flowtool _FT_COMPLETE=source ft
to your .bashrc or hook it up in /etc/ somewhere. Maybe one day flowtool will have an even more convenient distribution method (than python packages), that can install the completion into your system automatically. The current method (virtualenv) does not allow this, and installing the completion system-wide without the tool is currently possible, but will yield ugly errors, if you try to complete outside of your virtual environment.
- 0.8: convert (most) doctests to "real" (py-)tests
- 0.9: code cleanups, restructuring and a "real" documentation
- Convert more READMEs to rst, as a first initiative to start a sphinx documentation.
- flowtool-versioning does work now, and also for a lot of scenarios, but the version meta-information is still poor. The code can now be up-cycled for this to become great.
- flowtool-releasing requires quite a complex test-setup. With the new pytest tests this is almost build completely. With proper tests in place the releasing mechaninsm will need to be generalized greatly for more use cases.