fixes to get version and py2exe working on windows
authorForrest Voight <forrest@forre.st>
Thu, 15 Mar 2012 16:15:55 +0000 (09:15 -0700)
committerForrest Voight <forrest@forre.st>
Fri, 16 Mar 2012 17:07:06 +0000 (10:07 -0700)
p2pool/__init__.py
setup.py

index 0032bd5..241474f 100644 (file)
@@ -5,7 +5,7 @@ import subprocess
 
 def _get_version():
     try:
-        return subprocess.check_output(['git', 'describe', '--always', '--dirty'], cwd=os.path.dirname(sys.argv[0])).strip()
+        return subprocess.check_output(['git', 'describe', '--always', '--dirty'], cwd=os.path.dirname(os.path.abspath(sys.argv[0])), shell=True).strip()
     except:
         pass
     try:
index 7af657b..cc32e46 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,32 +1,46 @@
 import os
-import subprocess
+import shutil
 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))
+import zipfile
 
 from distutils.core import setup
 import py2exe
 
-sys.argv[1:] = ['py2exe']
-setup(name='p2pool',
-    version=version,
-    description='Peer-to-peer Bitcoin mining pool',
-    author='Forrest Voight',
-    author_email='forrest@forre.st',
-    url='http://p2pool.forre.st/',
-    data_files=[('', ['README'])],
+version = __import__('p2pool').__version__
+
+old_contents = open('p2pool/__init__.py', 'rb').read()
+try:
+    open('p2pool/__init__.py', 'wb').write('__version__ = %r%s%sDEBUG = False%s' % (version, os.linesep, os.linesep, os.linesep))
     
-    console=['run_p2pool.py'],
-    options=dict(py2exe=dict(
-        bundle_files=1,
-        dll_excludes=['w9xpopen.exe'],
-        includes=['twisted.web.resource', 'ltc_scrypt'],
-    )),
-    zipfile=None,
-)
+    sys.argv[1:] = ['py2exe']
+    setup(name='p2pool',
+        version=version,
+        description='Peer-to-peer Bitcoin mining pool',
+        author='Forrest Voight',
+        author_email='forrest@forre.st',
+        url='http://p2pool.forre.st/',
+        data_files=[('', ['README'])],
+        
+        console=['run_p2pool.py'],
+        options=dict(py2exe=dict(
+            bundle_files=1,
+            dll_excludes=['w9xpopen.exe'],
+            includes=['twisted.web.resource', 'ltc_scrypt'],
+        )),
+        zipfile=None,
+    )
+finally:
+    open('p2pool/__init__.py', 'wb').write(old_contents)
 
 dir_name = 'p2pool_win32_' + version
-print dir_name
+
+if os.path.exists(dir_name):
+    shutil.rmtree(dir_name)
 os.rename('dist', dir_name)
+
+with zipfile.ZipFile(dir_name + '.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
+    for dirpath, dirnames, filenames in os.walk(dir_name):
+        for filename in filenames:
+            zf.write(os.path.join(dirpath, filename))
+
+print dir_name