Handle KeyboardInterrupt with less annoying spew to stderr.
This commit is contained in:
parent
9c349cf652
commit
3de384497d
3 changed files with 38 additions and 29 deletions
|
|
@ -48,12 +48,15 @@ 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)
|
||||||
|
|
||||||
want_build = []
|
try:
|
||||||
for t in sys.argv[1:]:
|
want_build = []
|
||||||
|
for t in sys.argv[1:]:
|
||||||
mkdirp('%s/.redo' % vars.BASE)
|
mkdirp('%s/.redo' % vars.BASE)
|
||||||
add_dep(vars.TARGET, 'm', t)
|
add_dep(vars.TARGET, 'm', t)
|
||||||
if dirty_deps(t, depth = ''):
|
if dirty_deps(t, depth = ''):
|
||||||
want_build.append(t)
|
want_build.append(t)
|
||||||
|
|
||||||
if want_build:
|
if want_build:
|
||||||
os.execvp('redo', ['redo', '--'] + want_build)
|
os.execvp('redo', ['redo', '--'] + want_build)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
sys.exit(200)
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,13 @@ if not vars.TARGET:
|
||||||
err('redo-ifcreate: error: must be run from inside a .do\n')
|
err('redo-ifcreate: error: must be run from inside a .do\n')
|
||||||
sys.exit(100)
|
sys.exit(100)
|
||||||
|
|
||||||
for t in sys.argv[1:]:
|
try:
|
||||||
|
for t in sys.argv[1:]:
|
||||||
mkdirp('%s/.redo' % vars.BASE)
|
mkdirp('%s/.redo' % vars.BASE)
|
||||||
if os.path.exists(t):
|
if os.path.exists(t):
|
||||||
err('redo-ifcreate: error: %r already exists\n' % t)
|
err('redo-ifcreate: error: %r already exists\n' % t)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
add_dep(vars.TARGET, 'c', t)
|
add_dep(vars.TARGET, 'c', t)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
sys.exit(200)
|
||||||
|
|
|
||||||
11
redo.py
11
redo.py
|
|
@ -118,9 +118,10 @@ if not vars.DEPTH:
|
||||||
dirnames = [os.path.dirname(p) for p in exenames]
|
dirnames = [os.path.dirname(p) for p in exenames]
|
||||||
os.environ['PATH'] = ':'.join(dirnames) + ':' + os.environ['PATH']
|
os.environ['PATH'] = ':'.join(dirnames) + ':' + os.environ['PATH']
|
||||||
|
|
||||||
retcode = 0
|
try:
|
||||||
startdir = os.getcwd()
|
retcode = 0
|
||||||
for t in targets:
|
startdir = os.getcwd()
|
||||||
|
for t in targets:
|
||||||
if os.path.exists('%s/all.do' % t):
|
if os.path.exists('%s/all.do' % t):
|
||||||
# t is a directory, but it has a default target
|
# t is a directory, but it has a default target
|
||||||
t = '%s/all' % t
|
t = '%s/all' % t
|
||||||
|
|
@ -131,4 +132,6 @@ for t in targets:
|
||||||
except BuildError, e:
|
except BuildError, e:
|
||||||
err('%s\n' % e)
|
err('%s\n' % e)
|
||||||
retcode = 1
|
retcode = 1
|
||||||
sys.exit(retcode)
|
sys.exit(retcode)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
sys.exit(200)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue