18fc0e5a4b697b886939d07228344fdda7b1e4aacmbligh#!/usr/bin/python
28fc0e5a4b697b886939d07228344fdda7b1e4aacmblighimport os
38fc0e5a4b697b886939d07228344fdda7b1e4aacmbligh
48fc0e5a4b697b886939d07228344fdda7b1e4aacmblighdef purge_src(top_dir):
594bdda0911771236b7979f9396397452c6f125dambligh    if not os.path.exists(top_dir):
694bdda0911771236b7979f9396397452c6f125dambligh        return
70afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski    for dir in os.listdir(top_dir):
80afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        if dir.startswith('.'):
90afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski            continue
100afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        py = os.path.join (top_dir, dir, dir + '.py')
110afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        if not os.path.exists(py):
120afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski            continue
130afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        ret = os.system('grep -q "preserve_srcdir = " ' + py)
140afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        src_path = os.path.abspath(os.path.join('tests', dir, 'src'))
150afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        if not os.path.exists(src_path):
160afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski            continue
170afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        if ret:                 # This should have a replaceable src dir
180afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski            cmd = 'rm -rf ' + src_path
190afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        else:
200afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski            cmd = 'cd %s; make clean > /dev/null 2>&1 ' % src_path
218fc0e5a4b697b886939d07228344fdda7b1e4aacmbligh
22d0e94981f3771ec95821358bee9d27fda7378288mbligh        print 'Cleaning %s test dir' % dir
230afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski        os.system(cmd)
248fc0e5a4b697b886939d07228344fdda7b1e4aacmbligh
25ef8f1f358be9b724ffc70112413af5e55ab26efdmblighif os.path.isdir('tmp'):
26ef8f1f358be9b724ffc70112413af5e55ab26efdmbligh    os.system('cd tmp && ls -A | xargs rm -rf')
276fd4428c6ea9e48b1f2926c69ca0361abbf15ae1mbligh
2894bdda0911771236b7979f9396397452c6f125damblighfor dir in ['site_tests', 'site_profilers', 'tests', 'profilers', 'deps']:
290afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski    purge_src(dir)
30