#!/usr/bin/python

import sys, re, shutil, os, hashlib
import imp
import getpass
import subprocess

def recurse_into(target, ext, func):
    # traverse root directory, and list directories as dirs and files as files
    for root, dirs, files in os.walk(target):
        for dfile in files:
            if dfile.endswith(ext):
                print('Running {} on file: {}'.format(func, dfile))
                func(os.path.join(root, dfile))
 

if __name__ == '__main__':

    d = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
    os.chdir(d)
    v = imp.load_source('version', 'lib/version.py')
    version = v.ELECTRUM_VERSION
    print "version", version

    # install dependencies into 'packages' directory
    deps = ['slowaes>=0.1a1',
        'ecdsa>=0.9',
        'pbkdf2',
        'requests',
        'qrcode',
        'protobuf',
        'dnspython',
        'six']

    popen = subprocess.Popen
    target = os.path.join(d, 'packages')
    for module in deps:
        subprocess.call('pip install {} -t {}'.format(module, target), shell=True)

    # recurse into dir and run func on extensions
    recurse_into(target, '.pyc', os.unlink)

    # fix google/__init__.py needed by pyinstaller
    n = d + '/packages/google/__init__.py'
    if not os.path.exists(n):
        os.system("echo \# do not remove>%s"%n)

    os.system("pyrcc4 icons.qrc -o gui/qt/icons_rc.py")
    os.system("python setup.py sdist --format=zip,gztar")

    print "Packages are ready in dist"


