rerun is a Python module that allows you to re-run the given command every time files under the current directory are updated.
Usage
rerun [options] < command >
where 'options' may include:
--verbose|-v List changed files before < command > output
--ignore|-i < D > Directory or filename to ignore. Changes to this file
do not trigger another execution of < command >.
e.g:
rerun python -m unittest mypackage.mymodule
will rerun your tests every time you save your source code. Handy for seeing the new test results in a console window after you hit 'save' in your editor, without having to change window focus.
It detects changes to files by polling file modification times once per second. On detecting any changes, it clears the terminal and reruns the given command.
Polling for modification times perhaps isn't ideal. Registering of OS-specific notifications of file system events might be better. In practice though, I haven't noticed it burden my machine, even in project directories containing hundreds of files.
It ignores directories called .svn, .git, .hg, .bzr, build and dist. It ignores files ending with .pyc or .pyo.
Install
pip install rerun
Thanks
The idea came from the Bash command 'watch', and inspiration for this implementation came from an old blog post by Jeff Winkler, whos website http://jeffwinkler.net seems to have now died.
Product's homepage
Requirements:
· Python