Skip to main content

Command-line executable Python script to re-run the given command every timefiles are modified in the current directory or its subdirectories.

Project description

Usage

rerun [--help|-h] [--verbose|-v] [--ignore|-i=<file>] [--version] <command>

Where:

<command>           Command to execute
--help|-h           Show this help message and exit.
--ignore|-i=<file>  File or directory to ignore. Any directories of the
                    given name (and their subdirs) are excluded from the
                    search for changed files. Any modification to files of
                    the given name are ignored. The given value is
                    compared to basenames, so for example, "--ignore=def"
                    will skip the contents of directory "./abc/def/" and
                    will ignore file "./ghi/def". Can be specified multiple
                    times.
--verbose|-v        Display the names of changed files before the command
                    output.
--version           Show version number and exit.

Description

Rerun detects changes to files by polling file modification times once per second. It looks in the current directory and all its subdirectories. On detecting any changes, it clears the terminal and reruns the given command.

It always ignores directories called .svn, .git, .hg, .bzr, build and dist.

It always ignores files ending with .pyc or .pyo.

e.g:

rerun python -m unittest mypackage.mymodule

will rerun your tests every time you save your source code, but it won’t rerun the tests a second time when .pyo files get updated as a result of executing the tests. Handy for seeing the new test results in another console window after you hit ‘save’ in your editor, without having to change window focus.

Dependencies

Tested on MacOSX, Ubuntu, WindowsXP, Windows 7.

Tested under Python2.7 or 3.2. May run under Python 2.6 or older with PyPI package ‘argparse’ installed.

No other dependencies.

Install

pip install rerun

Known Problems

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 in directories containing hundreds of files.

It might be handy if ‘–ignore’ accepted globs, e.g. “*.tmp”

See issues at https://bitbucket.org/tartley/rerun/issues?status=new&status=open

Alternatives

PyPI package ‘watchdog’ is a cross-platform library for handling file-system events, which includes script ‘watchmedo’, which looks like a more serious and heavy-duty version of ‘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.

Contact

Documentation & download:

http://pypi.python.org/pypi/rerun/

Souce code and issues:

https://bitbucket.org/tartley/rerun

Contact the author:

Jonathan Hartley, email: tartley at domain tartley.com, Twitter: @tartley.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

rerun-1.0.14.zip (11.7 kB view details)

Uploaded Source

rerun-1.0.14.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file rerun-1.0.14.zip.

File metadata

  • Download URL: rerun-1.0.14.zip
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rerun-1.0.14.zip
Algorithm Hash digest
SHA256 e9b3f2357ecca511787770f1d4330b4755820742e5dd72d5d58f6ef463c498fd
MD5 05700c7cb2e3de1644e9f54b6b590f39
BLAKE2b-256 8f80f44be1a6ae210bf7bf459117dfa3dfd8e743f511a67e1cee1909b9166b9e

See more details on using hashes here.

File details

Details for the file rerun-1.0.14.tar.gz.

File metadata

  • Download URL: rerun-1.0.14.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rerun-1.0.14.tar.gz
Algorithm Hash digest
SHA256 32094144b453de9e89d02d202c220f6b5c6f65c9aacef855671ed9bf72f36c7e
MD5 2cf661459361b9c59bb18fbb260a2adb
BLAKE2b-256 5a8f4378bd7d9ff174776f9a14f85f0b4279c830a6f36b7ac1bee9defb8a20cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page