version finder now calls git-describe; py2exe build script fixed up
authorForrest Voight <forrest.voight@gmail.com>
Mon, 5 Mar 2012 20:17:05 +0000 (15:17 -0500)
committerForrest Voight <forrest.voight@gmail.com>
Mon, 5 Mar 2012 20:37:04 +0000 (15:37 -0500)
p2pool/__init__.py
setup.py

index eccf216..670e2fc 100644 (file)
@@ -1,9 +1,14 @@
 import os
 import sys
 import traceback
+import subprocess
 
 def _get_version():
     try:
+        return subprocess.check_output(['git', 'describe', '--always', '--dirty'], cwd=os.path.dirname(os.path.abspath(__file__))).strip()
+    except:
+        pass
+    try:
         root_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
         git_dir = os.path.join(root_dir, '.git')
         if os.path.exists(git_dir):
index 6eb84d9..cfb4374 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,25 +1,17 @@
 import os
+import subprocess
 import sys
 
+subprocess.check_call(['git', 'checkout', 'p2pool/__init__.py'])
+version = __import__('p2pool').__version__
+open('p2pool/__init__.py', 'wb').write('__version__ = %r%s%sDEBUG = False%s' % (version, os.linesep, os.linesep, os.linesep))
+
 from distutils.core import setup
 import py2exe
 
-def get_version():
-    root_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
-    git_dir = os.path.join(root_dir, '.git')
-    head = open(os.path.join(git_dir, 'HEAD')).read().strip()
-    prefix = 'ref: '
-    if head.startswith(prefix):
-        path = head[len(prefix):].split('/')
-        return open(os.path.join(git_dir, *path)).read().strip()[:7]
-    else:
-        return head[:7]
-
-open('p2pool/__init__.py', 'wb').write('__version__ = %r\r\n\r\nDEBUG = False\r\n' % get_version())
-
 sys.argv[1:] = ['py2exe']
 setup(name='p2pool',
-    version='1.0',
+    version=version,
     description='Peer-to-peer Bitcoin mining pool',
     author='Forrest Voight',
     author_email='forrest@forre.st',
@@ -35,5 +27,6 @@ setup(name='p2pool',
     zipfile=None,
 )
 
-os.rename('dist', 'p2pool_win32_' + get_version())
-print 'p2pool_win32_' + get_version()
\ No newline at end of file
+dir_name = 'p2pool_win32_' + version
+print dir_name
+os.rename('dist', dir_name)