Prettier printing of errors.
This commit is contained in:
parent
91cc82ff4a
commit
0bd6d07155
4 changed files with 26 additions and 8 deletions
10
helpers.py
10
helpers.py
|
|
@ -50,10 +50,19 @@ def _clog(s):
|
|||
_log('\x1b[32mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
||||
def _bwlog(s):
|
||||
_log('redo: %s%s' % (vars.DEPTH, s))
|
||||
|
||||
def _cerr(s):
|
||||
_log('\x1b[31mredo: %s\x1b[1m%s\x1b[m' % (vars.DEPTH, s))
|
||||
def _bwerr(s):
|
||||
_log('redo: %s%s' % (vars.DEPTH, s))
|
||||
|
||||
|
||||
if os.isatty(2):
|
||||
log = _clog
|
||||
err = _cerr
|
||||
else:
|
||||
log = _bwlog
|
||||
err = _bwerr
|
||||
|
||||
|
||||
def debug(s):
|
||||
|
|
@ -61,7 +70,6 @@ def debug(s):
|
|||
_log('redo: %s%s' % (vars.DEPTH, s))
|
||||
|
||||
|
||||
|
||||
def relpath(t, base):
|
||||
t = os.path.abspath(t)
|
||||
tparts = t.split('/')
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ def dirty_deps(t, depth):
|
|||
|
||||
|
||||
if not vars.TARGET:
|
||||
sys.stderr.write('redo-ifchange: error: must be run from inside a .do\n')
|
||||
sys.exit(1)
|
||||
err('redo-ifchange: error: must be run from inside a .do\n')
|
||||
sys.exit(100)
|
||||
|
||||
want_build = []
|
||||
for t in sys.argv[1:]:
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ from helpers import *
|
|||
|
||||
|
||||
if not vars.TARGET:
|
||||
sys.stderr.write('redo-ifcreate: error: must be run from inside a .do\n')
|
||||
sys.exit(1)
|
||||
err('redo-ifcreate: error: must be run from inside a .do\n')
|
||||
sys.exit(100)
|
||||
|
||||
for t in sys.argv[1:]:
|
||||
mkdirp('%s/.redo' % vars.BASE)
|
||||
|
|
|
|||
14
redo.py
14
redo.py
|
|
@ -33,6 +33,10 @@ import vars
|
|||
from helpers import *
|
||||
|
||||
|
||||
class BuildError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def find_do_file(t):
|
||||
dofile = '%s.do' % t
|
||||
if os.path.exists(dofile):
|
||||
|
|
@ -75,7 +79,7 @@ def build(t):
|
|||
stamp(t)
|
||||
return # success
|
||||
else:
|
||||
raise Exception('no rule to make %r' % t)
|
||||
raise BuildError('no rule to make %r' % t)
|
||||
stamp(dofile)
|
||||
unlink(t)
|
||||
tmpname = '%s.redo.tmp' % t
|
||||
|
|
@ -102,7 +106,7 @@ def build(t):
|
|||
unlink(stampfile)
|
||||
f.close()
|
||||
if rv != 0:
|
||||
raise Exception('non-zero return code building %r' % t)
|
||||
raise BuildError('%s: exit code %d' % (t,rv))
|
||||
|
||||
|
||||
if not vars.DEPTH:
|
||||
|
|
@ -113,8 +117,14 @@ if not vars.DEPTH:
|
|||
dirnames = [os.path.dirname(p) for p in exenames]
|
||||
os.environ['PATH'] = ':'.join(dirnames) + ':' + os.environ['PATH']
|
||||
|
||||
retcode = 0
|
||||
startdir = os.getcwd()
|
||||
for t in targets:
|
||||
mkdirp('%s/.redo' % vars.BASE)
|
||||
os.chdir(startdir)
|
||||
try:
|
||||
build(t)
|
||||
except BuildError, e:
|
||||
err('%s\n' % e)
|
||||
retcode = 1
|
||||
sys.exit(retcode)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue