fixes to get version and py2exe working on windows
[p2pool.git] / p2pool / __init__.py
1 import os
2 import sys
3 import traceback
4 import subprocess
5
6 def _get_version():
7     try:
8         return subprocess.check_output(['git', 'describe', '--always', '--dirty'], cwd=os.path.dirname(os.path.abspath(sys.argv[0])), shell=True).strip()
9     except:
10         pass
11     try:
12         root_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
13         git_dir = os.path.join(root_dir, '.git')
14         if os.path.exists(git_dir):
15             head = open(os.path.join(git_dir, 'HEAD')).read().strip()
16             prefix = 'ref: '
17             if head.startswith(prefix):
18                 path = head[len(prefix):].split('/')
19                 return open(os.path.join(git_dir, *path)).read().strip()[:7]
20             else:
21                 return head[:7]
22         dir_name = os.path.split(root_dir)[1]
23         chars = '0123456789abcdef'
24         if len(dir_name) >= 7 and (len(dir_name) == 7 or dir_name[-8] not in chars) and all(c in chars for c in dir_name[-7:]):
25             return dir_name[-7:]
26     except Exception, e:
27         traceback.print_exc()
28     return 'unknown'
29
30 __version__ = _get_version()
31
32 DEBUG = False