Call a command when a directory changes. (Mac OS only)
Project description
icemac.callonchange calls a specific command when a directory or something in it has changed. It was developed to ease test driven development (TDD): it can call the test case under development each time the test case or the developed code changes.
Requirements
Mac OS X 10.5+ (Leopard)
Usage
icemac.callonchange can be used as standalone script and in buildout.
Usage as script
Installation
To install icemac.callonchange as script call:
$ python setup.py install
or install it using a package manager like easy_install or pip.
Call as script
To call it as a script add the path to the directory to be observed and the command (script or program) to be called when the directory or something in it has changed.
Example to call xeyes when something changed in the Downloads directory enter:
$ callonchange ~/Dowloads xeyes
In Buildout
Installation
Add a section to your buildout to generate a script for icemac.callonchange (don’t forget to add it to the parts!):
[coc] recipe = zc.recipe.egg eggs = icemac.callonchange arguments = "src", "bin/test"
This creates a callonchange script for the src directory which calls bin/test on each change in src or a subdirectory.
Usage as buildout script
You can add additional parameters when you call the generated script:
$ bin/callonchange -t testObserver
This command line calls bin/test -t testObserver on each change in the src directory.
Run tests
To run the tests of icemac.callonchange call:
$ python setup.py test
or use buildout:
$ python bootstrap.py $ bin/buildout $ bin/test
Thanks
Thanks to Malte Borch for the great MacFSEvents which icemac.callonchange is based on.
To do
Ease buildout integration by providing a buildout recipe with default arguments.
icemac.callonchange is currently not useable in situations where the command changes something in the observed diretory. (e. g. LaTeX documents can’t be created with it as the creation changes the observed diretory which starts creation … over and over again. (Need an ability to select file extension(s) for which the command should be run.)
Changelog
0.1 (2010-07-02)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.