Commit graph

12 commits

Author SHA1 Message Date
Avery Pennarun
b937e62d89 Add a new -k (--keep-going) option, like make has.
Previously, the default was to *always* keep going, which is actually not
usually what you want.  Now we actually exit correctly after an error.  Of
course you still might have multiple errors before existing if you were
building in parallel.
2010-11-21 07:15:48 -08:00
Avery Pennarun
6b0da1fda0 Add a -x option that just passes -x to the subshell.
This is often more useful than -v, since it prints the actual commands being
executed, not just the lines being input from the script.
2010-11-21 06:36:15 -08:00
Avery Pennarun
03a054ca79 Add a --debug-locks option.
Get rid of the "locked..." and "...unlocked!" messages by default, since
they're not usually interesting.  But add a new option to bring them back in
case we end up with trouble debugging the locking stuff.  (I don't really
100% trust it yet, although I haven't had a problem for a while now.)
2010-11-21 06:23:41 -08:00
Avery Pennarun
f644f3bd04 Remove the need for relpath (and thus abspath) in builder.py. 2010-11-21 03:35:19 -08:00
Avery Pennarun
61c7e0f8a8 vars.py: it's safe to assume REDO_BASE and REDO_STARTDIR are set correctly.
This lets us remove an extra call to os.abspath().
2010-11-21 03:09:43 -08:00
Avery Pennarun
94b0e7166e Move atoi() into atoi.py and add a new debug2() debug level.
atoi() was getting redundant, and unfortunately we can't easily load
helpers.py in some places where we'd want to, because it depends on vars.py.
So move it to its own module.
2010-11-16 04:13:17 -08:00
Avery Pennarun
b25e79f353 Add a --shuffle option to let you enable dependency randomization.
Previously, for testing, we were *always* randomizing the build order of
dependencies.  That's annoying since it'll make build logs differ randomly
from one run to the next, which could make comparisons harder.  However, the
feature is still useful for uncovering hidden dependencies between objects.
2010-11-16 00:28:01 -08:00
Avery Pennarun
9c349cf652 Fix log() output so you can cut-and-paste it verbatim into a command line.
It used to say:
	redo:   t/all
	redo:     hello
and now it says:
	redo    t/all
	redo      t/hello

ie. there's no colon, and the path is intact.  That means if the build
fails, you can cut-and-paste 'redo   t/hello', add a -v, and try to debug
what went wrong.
2010-11-13 01:55:07 -08:00
Avery Pennarun
2c3df2c80a Don't throw a weird exception if REDO_BASE isn't set. 2010-11-13 01:08:28 -08:00
Avery Pennarun
63c596ac61 Move log stuff into a separate log.py. 2010-11-13 00:11:34 -08:00
Avery Pennarun
45c6aad649 use os.environ[] instead of os.getenv/os.putenv.
Oddly, in python, os.putenv() does not make changes that os.getenv() can see.
2010-11-12 23:14:02 -08:00
Avery Pennarun
425a295d6f Use a single .redo dir for the entire build. 2010-11-12 22:47:03 -08:00