run testcases in debug mode
[p2pool.git] / p2pool / __init__.py
1 import os
2 import re
3 import sys
4 import traceback
5 import subprocess
6
7 def check_output(*popenargs, **kwargs):
8     process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
9     output, unused_err = process.communicate()
10     retcode = process.poll()
11     if retcode:
12         raise ValueError((retcode, output))
13     return output
14
15 def _get_version():
16     try:
17         try:
18             return check_output(['git', 'describe', '--always', '--dirty'], cwd=os.path.dirname(os.path.abspath(sys.argv[0]))).strip()
19         except:
20             pass
21         try:
22             return check_output(['git.cmd', 'describe', '--always', '--dirty'], cwd=os.path.dirname(os.path.abspath(sys.argv[0]))).strip()
23         except:
24             pass
25         
26         root_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
27         git_dir = os.path.join(root_dir, '.git')
28         if os.path.exists(git_dir):
29             head = open(os.path.join(git_dir, 'HEAD')).read().strip()
30             prefix = 'ref: '
31             if head.startswith(prefix):
32                 path = head[len(prefix):].split('/')
33                 return open(os.path.join(git_dir, *path)).read().strip()[:7]
34             else:
35                 return head[:7]
36         
37         dir_name = os.path.split(root_dir)[1]
38         match = re.match('p2pool-([.0-9]+)', dir_name)
39         if match:
40             return match.groups()[0]
41         
42         return 'unknown %s' % (dir_name.encode('hex'),)
43     except Exception, e:
44         traceback.print_exc()
45         return 'unknown %s' % (str(e).encode('hex'),)
46
47 __version__ = _get_version()
48
49 DEBUG = True