Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

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)

  • Python 2.5

General usage

Usage: callonchange [options] path utility [utility arguments]

coc invokes utility with its utility arguments when path or something in it changes.

Options:
-h, --help

show this help message and exit

-e EXTENSION

only call utility on changes of a file with this extension (option might be used multiple times)

EXTENSION might be specified with or without leading dot:

-e .py is equal to -e py

Caution: optional arguments must be specified before the positional arguments (path and utility). Arguments specified after the positional arguments are taken as arguments of the utility.

Usage as script

Installation

To install 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 a file with the extension log has changed in /var/log enter:

$ callonchange -e log /var/log xeyes

Caution: In this example xeyes is called on every new entry in the log file.

In buildout

There is a recipe in the package which eases installation using buildout.

Installation with default arguments

Add a section to your buildout to generate a script for callonchange (don’t forget to add it to the parts!):

[coc]
recipe = icemac.callonchange

This creates a callonchange script with default arguments. These are:

'-e', 'py', '-e', 'zcml', '-e', 'pt', '-e', 'txt', 'src', 'bin/test', '-cv'

Which means: observe in the src directory files with the extensions py, zcml, pt and txt. Call bin/test with the arguments cv (verbose and color) on changes.

Installation with customized arguments

To override the default arguments add an arguments parameter to the buildout section:

[coc]
recipe = icemac.callonchange
name = coc
arguments = 'Products', 'bin/ztest'

This means: The created script will be named coc. When called it will observe the Products directory and call bin/ztest on changes.

Usage as buildout script

You can add additional parameters when you call the generated script:

$ bin/callonchange -t testObserver

When you use the default arguments in the buildout section, this command line calls bin/test -cv -t testObserver on each change of py, zcml, pt or txt files in the src directory.

Stopping callonchange

To stop a running callonchange instance hit ^C (Control-C).

Runing the tests

To run the tests of icemac.callonchange call:

$ python setup.py test

or use buildout:

$ python bootstrap.py
$ bin/buildout
$ bin/test

or use callonchange itself:

$ python bootstrap.py
$ bin/buildout
$ bin/callonchange

In the last version you have to change something inside the src directory of the package so the observer lets the tests run.

Thanks

Thanks to Malte Borch for the great MacFSEvents which icemac.callonchange is based on.

Ideas

  • It would be nice to have predefined argument lines even when not using buildout. They could be stored in the home directory of the user.

Changelog

0.3 (2010-07-07)

  • Added abbility to specify file extensions so only files with these extensions will be observed.

  • Added a name parameter to the recipe to control the name of the generated script, e. g. allowing more than one icemac.callonchange script in a buildout.

0.2 (2010-07-04)

  • Added buildout recipe to ease integration with buildout projects. (See section In buildout.)

0.1 (2010-07-02)

  • Initial release.

Metadata

Release files for icemac.callonchange 0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for icemac.callonchange 0.3
File Size Uploaded
icemac.callonchange-0.3.tar.gz 10.8 kB Details

Release files / icemac.callonchange-0.3.tar.gz

Download URL icemac.callonchange-0.3.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9025e8e0179c667f65d9cc8df5632d6e2583978748a83dcbb0982c159d25dff1
BLAKE2b-256 checksum
How to use checksums
1e1466e1e4c4122dd23d6c71a2b22acfe0b9866862984e58a191e47646fda64e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page