示例#1
0
def create_update_archive(archive_path):
    zp = zipfile.ZipFile(archive_path, 'w', compression=zipfile.ZIP_DEFLATED)
    files_list = create_app_update_list()
    abs_path = env_mode.get_current_path()

    for fl in files_list:
        fl_rep = fl.replace
        zp.write(fl, arcname=fl_rep(abs_path, ''))
    zp.close()
def get_update_archive_from_server(archive_name):

    archive_path = '{0}/updates/{1}'.format(env_mode.get_current_path(), archive_name)

    update_archive_file = download_from_url('http://tactichandler.tk/th/{0}'.format(archive_name))
    if update_archive_file:
        with open(archive_path, 'wb') as output:
            output.write(update_archive_file.read())

        return archive_path
示例#3
0
def update_from_archive(archive_path):
    with zipfile.ZipFile(archive_path, "r") as zp:
        members = []
        for member in zp.infolist():
            member.filename = member.filename.replace('\\', '/')
            members.append(member)

        zp.extractall(env_mode.get_current_path(), members)

    zp.close()
示例#4
0
 def commit_update_to_json(self):
     args = self.majorSpinBox.text(),\
            self.minorSpinBox.text(),\
            self.buildSpinBox.text(),\
            self.revisionSpinBox.text()
     current_ver_dict = uf.get_version(*args)
     current_ver_str = uf.get_version(*args, string=True)
     data_dict = {
         'version': current_ver_dict,
         'date': self.dateEdit.text(),
         'changes': self.changesPlainTextEdit.toPlainText(),
         'misc': self.miscPlainTextEdit.toPlainText(),
         'remove_list': [],
         'update_archive': '{0}.zip'.format(current_ver_str)
     }
     uf.save_json_to_path('{0}/updates/{1}.json'.format(env_mode.get_current_path(), current_ver_str), data_dict)
     uf.create_updates_list()
     uf.save_current_version(current_ver_dict)
     uf.create_update_archive('{0}/updates/{1}.zip'.format(env_mode.get_current_path(), current_ver_str))
     self.close()
def get_info_from_updates_folder(files_list=False):
    updates_dir = '{0}/updates'.format(env_mode.get_current_path())
    json_files = glob.glob1(updates_dir, '*.json')
    if files_list:
        return json_files
    updates_list = []
    for jf in json_files:
        if jf != 'versions.json':
            print '{0}/{1}'.format(updates_dir, jf)
            updates_list.append(read_json_from_path('{0}/{1}'.format(updates_dir, jf)))

    return updates_list
 def add_debuglog(self, debuglog_dict, message_type, write_log=False):
     self.debugLogTextEdit.append(self.format_debuglog(debuglog_dict[1], message_type))
     if write_log:
         log_text = self.format_debuglog(debuglog_dict[1], message_type, False)
         log_path = u'{0}/log'.format(env_mode.get_current_path())
         date_str = datetime.date.strftime(dl.session_start, '%d_%m_%Y_%H_%M_%S')
         if os.path.exists(log_path):
             log_file = open(u'{0}/session_{1}.log'.format(log_path, date_str), 'a+')
         else:
             os.makedirs(log_path)
             log_file = open(u'{0}/session_{1}.log'.format(log_path, date_str), 'w+')
         log_file.write(log_text + '\n')
         log_file.close()
def get_updates_from_server():
    updates_list = download_from_url('http://tactichandler.tk/th/versions.json?{0}'.format(random.randint(0, 99999)))
    if updates_list:
        versions_list = json.loads(updates_list.read())
        path_to_save = '{0}/updates'.format(env_mode.get_current_path())

        if not os.path.exists(path_to_save):
            os.makedirs(path_to_save)

        for vl in versions_list:
            update_file = download_from_url('http://tactichandler.tk/th/{0}'.format(vl))
            with open('{0}/{1}'.format(path_to_save, vl), 'wb') as output:
                output.write(update_file.read())
        def close_routine():
            if env_mode.get_mode() == 'maya':
                self.close()

                from thlib.ui_classes.ui_maya_dock import close_all_instances
                close_all_instances()

                # Removing path from sys, so we can run other instance from different path
                import sys
                sys.path.remove(env_mode.get_current_path())

            if env_mode.get_mode() == 'standalone':
                self.close()
示例#9
0
def create_app_update_list():
    ignore_list = [
        '.idea',
        '!not_in_project!',
        'settings',
        'screenshots',
        'updates',
        'asd.txt',
        'asd2.txt',
        'asd4.txt',
        'backup',
        'design',
        'deprecated',
    ]
    include_list = [
        '*.py',
        '*.pyw',
        '*.ui',
        '*.json',
        '*.png',
        '*.psd',
        '*.py',
        '*.qrc',
        '*.ico',
        '*.tga',
        '*.txt',
        '*.tif',
        '*.rgb',
        '*.j2k',
        '*.jpg',
        '*.zip',
        '*.ttf',
        '*VERSION*',
    ]

    include_list = r'|'.join([fnmatch.translate(x) for x in include_list])
    ignore_list = '|'.join(ignore_list)

    files_list = []
    for root, dirs, files in os.walk(env_mode.get_current_path()):
        if not re.search(ignore_list, root):
            files = [os.path.join(root, f) for f in files]
            files = [f for f in files if not re.search(ignore_list, f)]
            files = [f for f in files if re.search(include_list, f)]

            for fl in files:
                files_list.append(fl)

    return files_list
def startup():

    env_inst.ui_super = QSingleApplication(sys.argv)
    env_inst.ui_super.setApplicationName('TacticHandler_TacticApiServer')
    env_inst.ui_super.setStyle('plastique')

    env_mode.set_mode('api_server')

    date_str = datetime.date.strftime(dl.session_start, '%d_%m_%Y_%H_%M_%S')
    stdout_path = u'{0}/log/api_server_stdout_{1}.log'.format(env_mode.get_current_path(), date_str)
    sys.stdout = open(stdout_path, 'w')

    main_standalone.setPaletteFromDct(main_standalone.palette)

    env_inst.ui_super.start_single(ui_tactic_api_server_classes.Ui_TacticApiClient())

    sys.exit(env_inst.ui_super.exec_())
示例#11
0
def create_updates_list():
    file_path = '{0}/updates/versions.json'.format(env_mode.get_current_path())
    save_json_to_path(file_path, get_info_from_updates_folder(files_list=True))
示例#12
0
def save_current_version(data):
    file_path = '{0}/thlib/version.json'.format(env_mode.get_current_path())
    save_json_to_path(file_path, data)
示例#13
0
def get_current_version():
    file_path = '{0}/thlib/version.json'.format(env_mode.get_current_path())
    return read_json_from_path(file_path)
示例#14
0
def save_json_to_path(file_path, data):
    updates_dir = '{0}/updates'.format(env_mode.get_current_path())
    if not os.path.exists(updates_dir):
        os.makedirs(updates_dir)
    json_file = file(file_path, mode='w+')
    json.dump(data, json_file, indent=4)
示例#15
0
def save_json_to_path(file_path, data):
    updates_dir = '{0}/updates'.format(env_mode.get_current_path())
    if not os.path.isdir(updates_dir):
        os.makedirs(updates_dir)
    with open(file_path, mode='w+') as json_file:
        json.dump(data, json_file, indent=4)