"""
This script is from https://github.com/kamillus/py2app-pyqt-codesign-fix-os-x
and slightly modified.
"""

import os
import re
import shutil

path_to_app = "dist/OnionShare.app"

def move_func(file):
    print "moving %s to %s " % (os.path.join(dir_name, file), os.path.join(dir_name, 'Versions', "Current"))
    try:
        shutil.move(os.path.join(dir_name, file), os.path.join(dir_name, 'Versions', "Current"))
    except Exception as e:
        print e
    return file

def filter_func(x):
    return x != "Versions"


dir = path_to_app + "/Contents/Frameworks/"
p = re.compile('^Qt(.+)\.framework$')

for dir_name, subdir_list, file_list in os.walk(dir):
    dir_name_short = dir_name.replace(dir, "")

    if p.match(dir_name_short):
        print('Found directory: %s' % dir_name_short)
        print file_list
        if os.path.islink(os.path.join(dir_name, file_list[0])):
            os.unlink(os.path.join(dir_name, file_list[0]))
        list(map(move_func, file_list[1:]))
        list(map(move_func, filter(filter_func, subdir_list)))
