mirror of
https://github.com/venthur/blag.git
synced 2025-11-26 05:02:58 +00:00
Delete files that should not be in dest-dir
This commit is contained in:
24
blag/blag.py
24
blag/blag.py
@@ -209,6 +209,7 @@ def build(args):
|
|||||||
"""
|
"""
|
||||||
os.makedirs(f'{args.output_dir}', exist_ok=True)
|
os.makedirs(f'{args.output_dir}', exist_ok=True)
|
||||||
convertibles = []
|
convertibles = []
|
||||||
|
known_targets = []
|
||||||
for root, dirnames, filenames in os.walk(args.input_dir):
|
for root, dirnames, filenames in os.walk(args.input_dir):
|
||||||
for filename in filenames:
|
for filename in filenames:
|
||||||
rel_src = os.path.relpath(f'{root}/{filename}',
|
rel_src = os.path.relpath(f'{root}/{filename}',
|
||||||
@@ -219,13 +220,20 @@ def build(args):
|
|||||||
rel_dst = rel_src
|
rel_dst = rel_src
|
||||||
rel_dst = rel_dst[:-3] + '.html'
|
rel_dst = rel_dst[:-3] + '.html'
|
||||||
convertibles.append((rel_src, rel_dst))
|
convertibles.append((rel_src, rel_dst))
|
||||||
|
known_targets.append(
|
||||||
|
os.path.abspath(f'{args.output_dir}/{rel_dst}')
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
shutil.copy(f'{args.input_dir}/{rel_src}',
|
shutil.copy(f'{args.input_dir}/{rel_src}',
|
||||||
f'{args.output_dir}/{rel_src}')
|
f'{args.output_dir}/{rel_src}')
|
||||||
|
known_targets.append(
|
||||||
|
os.path.abspath(f'{args.output_dir}/{rel_src}')
|
||||||
|
)
|
||||||
for dirname in dirnames:
|
for dirname in dirnames:
|
||||||
# all directories are copied into the output directory
|
# all directories are copied into the output directory
|
||||||
path = os.path.relpath(f'{root}/{dirname}', start=args.input_dir)
|
path = os.path.relpath(f'{root}/{dirname}', start=args.input_dir)
|
||||||
os.makedirs(f'{args.output_dir}/{path}', exist_ok=True)
|
os.makedirs(f'{args.output_dir}/{path}', exist_ok=True)
|
||||||
|
known_targets.append(os.path.abspath(f'{args.output_dir}/{path}'))
|
||||||
|
|
||||||
# copy static files over
|
# copy static files over
|
||||||
logger.info('Copying static files.')
|
logger.info('Copying static files.')
|
||||||
@@ -250,6 +258,22 @@ def build(args):
|
|||||||
article_template,
|
article_template,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# clean up files that should not be there
|
||||||
|
for root, dirnames, filenames in os.walk(args.output_dir):
|
||||||
|
for filename in filenames:
|
||||||
|
dst = os.path.abspath(f'{root}/{filename}')
|
||||||
|
if dst not in known_targets:
|
||||||
|
os.remove(dst)
|
||||||
|
else:
|
||||||
|
known_targets.remove(dst)
|
||||||
|
for dirname in dirnames:
|
||||||
|
dst = os.path.abspath(f'{root}/{dirname}')
|
||||||
|
if dst not in known_targets:
|
||||||
|
shutil.rmtree(dst)
|
||||||
|
else:
|
||||||
|
known_targets.remove(dst)
|
||||||
|
logger.debug(known_targets)
|
||||||
|
|
||||||
generate_feed(
|
generate_feed(
|
||||||
articles, args.output_dir,
|
articles, args.output_dir,
|
||||||
base_url=config['base_url'],
|
base_url=config['base_url'],
|
||||||
|
|||||||
Reference in New Issue
Block a user