llvm-build: Fill in more of component parsing to be more strict and
[oota-llvm.git] / utils / llvm-build / llvmbuild / util.py
1 import inspect
2 import os
3 import sys
4
5 def _write_message(kind, message):
6     # Get the file/line where this message was generated.
7     f = inspect.currentframe()
8     # Step out of _write_message, and then out of wrapper.
9     f = f.f_back.f_back
10     file,line,_,_,_ = inspect.getframeinfo(f)
11     location = '%s:%d' % (os.path.basename(file), line)
12
13     print >>sys.stderr, '%s: %s: %s' % (location, kind, message)
14
15 note = lambda message: _write_message('note', message)
16 warning = lambda message: _write_message('warning', message)
17 error = lambda message: _write_message('error', message)
18 fatal = lambda message: (_write_message('fatal error', message), sys.exit(1))
19
20 __all__ = ['note', 'warning', 'error', 'fatal']