Make apenwarr/redo installable on windows and work with uv tool install
Find a file
Avery Pennarun 1f79bf1174 Detect when a .do script deletes its stdout tmp file.
This can happen if we create the .tmp file in the same directory as the
target, and the .do file first does "rm -rf" on that directory, then
re-creates it.  The result is that the stdout file is lost.

We'll make this a warning if the .do script *didn't* write to stdout
(so the loss is harmless, just weird), and an error if they *did* write
to stdout, which we can detect because we still have an open fd on the
file, so we can fstat() it.
2018-12-12 03:45:33 +00:00
bin Move setproctitle() stuff into title.py. 2018-12-05 02:28:34 -05:00
contrib/bash_completion.d MacOS: "-e filename/." returns true even for non-directories. 2011-03-05 19:03:30 -08:00
docs Minor copyediting of index.md. 2018-12-10 05:03:20 +00:00
minimal Fix minimal/do and tests when built in a path containing spaces. 2018-12-11 01:22:29 +00:00
redo Detect when a .do script deletes its stdout tmp file. 2018-12-12 03:45:33 +00:00
t Detect when a .do script deletes its stdout tmp file. 2018-12-12 03:45:33 +00:00
.gitignore Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
.pylintrc Switch to module-relative import syntax. 2018-12-05 02:34:36 -05:00
_all.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
all.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
clean.do Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
do Fix a few lagging doc references to old-style build+test layout. 2018-12-10 04:33:57 +00:00
install.do Fix minimal/do and tests when built in a path containing spaces. 2018-12-11 01:22:29 +00:00
LICENSE Change license to Apache 2.0. 2018-11-26 17:04:31 -05:00
Makefile Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
mkdocs.yml Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
README.md Directory reorg: move code into redo/, generate binaries in bin/. 2018-12-04 02:53:40 -05:00
test.do Fix a few lagging doc references to old-style build+test layout. 2018-12-10 04:33:57 +00:00

redo - a recursive build system

Smaller, easier, more powerful, and more reliable than make.

This is an implementation of Daniel J. Bernstein's redo build system. He never released his version, so other people have implemented different variants based on his published specification.

This version, sometimes called apenwarr/redo, is probably the most advanced one, including support for parallel builds, improved logging, and helpful debugging features.

To build and test redo, run ./do -j10 test. To install it, run DESTDIR=/tmp/testinstall PREFIX=/usr/local ./do -j10 install.


  • View the documentation via readthedocs.org
  • Visit the source code on github
  • Discussions and support via the mailing list. You can subscribe by sending any email message to redo-list+subscribe@googlegroups.com (note the plus sign).