X-Git-Url: https://git.novaco.in/?p=p2pool.git;a=blobdiff_plain;f=setup.py;h=95547831bddcd871ab8a229156c7254e9ceeabdf;hp=06d7240f43a72013fdf6d13517ad0e38255fa3e0;hb=HEAD;hpb=2c02767be849c4663851fac635ba5c5a33273a83 diff --git a/setup.py b/setup.py index 06d7240..9554783 100644 --- a/setup.py +++ b/setup.py @@ -1,35 +1,70 @@ import os +import shutil import sys +import zipfile +import platform from distutils.core import setup +from distutils.sysconfig import get_python_lib 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()) - -setup(name='p2pool', - version='1.0', - description='Peer-to-peer Bitcoin mining pool', - author='Forrest Voight', - author_email='forrest@forre.st', - url='http://p2pool.forre.st/', - data_files=[('', ['README', 'README-Litecoin'])], - - console=['run_p2pool.py'], - options=dict(py2exe=dict( - bundle_files=1, - dll_excludes=['w9xpopen.exe'], - includes=['twisted.web.resource', 'ltc_scrypt'], - )), - zipfile=None, -) +version = __import__('p2pool').__version__ +im64 = '64' in platform.architecture()[0] + +if os.path.exists('INITBAK'): + os.remove('INITBAK') +os.rename(os.path.join('p2pool', '__init__.py'), 'INITBAK') +try: + open(os.path.join('p2pool', '__init__.py'), 'wb').write('__version__ = %r%s%sDEBUG = False%s' % (version, os.linesep, os.linesep, os.linesep)) + mfcdir = get_python_lib() + '\pythonwin\\' + mfcfiles = [os.path.join(mfcdir, i) for i in ["mfc90.dll", "mfc90u.dll", "mfcm90.dll", "mfcm90u.dll", "Microsoft.VC90.MFC.manifest"]] + bundle = 1 + if im64: + bundle = bundle + 2 + 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.md']), + ("Microsoft.VC90.MFC", mfcfiles), + ('web-static', [ + 'web-static/d3.v2.min.js', + 'web-static/favicon.ico', + 'web-static/graphs.html', + 'web-static/index.html', + 'web-static/share.html', + ]), + ], + + console=['run_p2pool.py'], + options=dict(py2exe=dict( + bundle_files=bundle, + dll_excludes=['w9xpopen.exe', "mswsock.dll", "MSWSOCK.dll"], + includes=['twisted.web.resource', 'ltc_scrypt'], + )), + zipfile=None, + ) +finally: + os.remove(os.path.join('p2pool', '__init__.py')) + os.rename('INITBAK', os.path.join('p2pool', '__init__.py')) + +win = '32' +if im64: + win = '64' + +dir_name = 'p2pool_win' + win + '_' + version + +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