miz.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:EMFT 作者: 132nd-etcher 项目源码 文件源码
def reorder(miz_file_path, target_dir, skip_options_file):

        LOGGER.debug('re-ordering miz file: {}'.format(miz_file_path))
        LOGGER.debug('destination folder: {}'.format(target_dir))
        LOGGER.debug('{}option file'.format('skipping' if skip_options_file else 'including'))

        if not Path(target_dir).exists():
            LOGGER.debug(f'creating directory {target_dir}')
            Path(target_dir).makedirs()

        with Miz(miz_file_path, overwrite=True) as m:

            def mirror_dir(src, dst):
                LOGGER.debug('{} -> {}'.format(src, dst))
                diff_ = dircmp(src, dst, ignore)
                diff_list = diff_.left_only + diff_.diff_files
                LOGGER.debug('differences: {}'.format(diff_list))
                for x in diff_list:
                    source = Path(diff_.left).joinpath(x)
                    target = Path(diff_.right).joinpath(x)
                    LOGGER.debug('looking at: {}'.format(x))
                    if source.isdir():
                        LOGGER.debug('isdir: {}'.format(x))
                        if not target.exists():
                            LOGGER.debug('creating: {}'.format(x))
                            target.mkdir()
                        mirror_dir(source, target)
                    else:
                        LOGGER.debug('copying: {}'.format(x))
                        source.copy2(diff_.right)
                for sub in diff_.subdirs.values():
                    assert isinstance(sub, dircmp)
                    mirror_dir(sub.left, sub.right)

            m._encode()

            if skip_options_file:
                ignore = ['options']
            else:
                ignore = []

            mirror_dir(m.tmpdir, target_dir)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号