move __init__.py when inserting version during build process instead of recreating...
[p2pool.git] / setup.py
1 import os
2 import shutil
3 import sys
4 import zipfile
5
6 from distutils.core import setup
7 import py2exe
8
9 version = __import__('p2pool').__version__
10
11 if os.path.exists('INITBAK'):
12     os.remove('INITBAK')
13 os.rename(os.path.join('p2pool', '__init__.py'), 'INITBAK')
14 try:
15     open(os.path.join('p2pool', '__init__.py'), 'wb').write('__version__ = %r%s%sDEBUG = False%s' % (version, os.linesep, os.linesep, os.linesep))
16     
17     sys.argv[1:] = ['py2exe']
18     setup(name='p2pool',
19         version=version,
20         description='Peer-to-peer Bitcoin mining pool',
21         author='Forrest Voight',
22         author_email='forrest@forre.st',
23         url='http://p2pool.forre.st/',
24         data_files=[
25             ('', ['README']),
26             ('web-static', [
27                 'web-static/d3.v2.min.js',
28                 'web-static/graphs.html',
29             ]),
30         ],
31         
32         console=['run_p2pool.py'],
33         options=dict(py2exe=dict(
34             bundle_files=1,
35             dll_excludes=['w9xpopen.exe'],
36             includes=['twisted.web.resource', 'ltc_scrypt'],
37         )),
38         zipfile=None,
39     )
40 finally:
41     os.remove(os.path.join('p2pool', '__init__.py'))
42     os.rename('INITBAK', os.path.join('p2pool', '__init__.py'))
43
44 dir_name = 'p2pool_win32_' + version
45
46 if os.path.exists(dir_name):
47     shutil.rmtree(dir_name)
48 os.rename('dist', dir_name)
49
50 with zipfile.ZipFile(dir_name + '.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
51     for dirpath, dirnames, filenames in os.walk(dir_name):
52         for filename in filenames:
53             zf.write(os.path.join(dirpath, filename))
54
55 print dir_name