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)
评论列表
文章目录