summaryrefslogtreecommitdiff
path: root/buildtools/wafadmin/3rdparty/paranoid.py
blob: ead64ea5c3aa80b0c04001aeca1adc8e49151382 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env python
# encoding: utf-8
# ita 2010

import Logs, Utils, Build, Task

def say(txt):
	Logs.warn("^o^: %s" % txt)

try:
	ret = Utils.cmd_output('which cowsay 2> /dev/null').strip()
except Exception, e:
	pass
else:
	def say(txt):
		f = Utils.cmd_output([ret, txt])
		Utils.pprint('PINK', f)

say('you make the errors, we detect them')

def check_task_classes(self):
	for x in Task.TaskBase.classes:
		if isinstance(x, Task.Task):
			if not getattr(cls, 'ext_in', None) or getattr(cls, 'before', None):
				say('class %s has no precedence constraints (ext_in/before)')
			if not getattr(cls, 'ext_out', None) or getattr(cls, 'after', None):
				say('class %s has no precedence constraints (ext_out/after)')

comp = Build.BuildContext.compile
def compile(self):
	if not getattr(self, 'magic', None):
		check_task_classes(self)
	return comp(self)
Build.BuildContext.compile = compile