redo-ifchange: call builder directly, rather than forking redo.
Now we no longer rebuild the same stuff over and over!
This commit is contained in:
parent
f7734c3b8d
commit
22f8cb48f4
1 changed files with 9 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
import sys, os, errno
|
import sys, os, errno
|
||||||
import vars, state
|
import vars, state, builder
|
||||||
from helpers import debug, err, mkdirp, unlink
|
from helpers import debug, err, mkdirp, unlink
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -39,10 +39,16 @@ def dirty_deps(t, depth, fromdir=None):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def maybe_build(t):
|
||||||
|
if dirty_deps(t, depth = ''):
|
||||||
|
builder.build(t)
|
||||||
|
|
||||||
|
|
||||||
if not vars.TARGET:
|
if not vars.TARGET:
|
||||||
err('redo-ifchange: error: must be run from inside a .do\n')
|
err('redo-ifchange: error: must be run from inside a .do\n')
|
||||||
sys.exit(100)
|
sys.exit(100)
|
||||||
|
|
||||||
|
rv = 202
|
||||||
try:
|
try:
|
||||||
want_build = []
|
want_build = []
|
||||||
for t in sys.argv[1:]:
|
for t in sys.argv[1:]:
|
||||||
|
|
@ -50,7 +56,7 @@ try:
|
||||||
if dirty_deps(t, depth = ''):
|
if dirty_deps(t, depth = ''):
|
||||||
want_build.append(t)
|
want_build.append(t)
|
||||||
|
|
||||||
if want_build:
|
rv = builder.main(want_build, maybe_build)
|
||||||
os.execvp('redo', ['redo', '--'] + want_build)
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
sys.exit(200)
|
sys.exit(200)
|
||||||
|
sys.exit(rv)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue