Squashed 'themes/paperesque/' content from commit 228903d
git-subtree-dir: themes/paperesque git-subtree-split: 228903d2bad09f92d4de8a2922806fafd24d3966
This commit is contained in:
41
buildscripts/drop-resources.py
Executable file
41
buildscripts/drop-resources.py
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import os
|
||||
import pathlib
|
||||
import typing
|
||||
|
||||
def die(msg):
|
||||
print(msg)
|
||||
exit(1)
|
||||
|
||||
def line_to_path(base_path, line):
|
||||
path = pathlib.Path(base_path, line.lstrip('/'))
|
||||
return path
|
||||
|
||||
def get_filenames_from_droplist(base_path, path):
|
||||
lines = path.read_text().strip().splitlines()
|
||||
return [line_to_path(base_path, line) for line in lines if line]
|
||||
|
||||
def drop_paths(paths, output_dir):
|
||||
for f in paths:
|
||||
assert f.is_file()
|
||||
f.unlink()
|
||||
print(f"Removed {f.relative_to(output_dir)}")
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
die(f'Usage: {sys.argv[0]} [hugo-output-directory]')
|
||||
|
||||
output_dir = pathlib.Path(sys.argv[1])
|
||||
|
||||
if not output_dir.is_dir():
|
||||
die(f'{output_dir} must be a hugo output directory')
|
||||
|
||||
all_droplists = list(output_dir.rglob('*.droplist'))
|
||||
all_files_to_drop = [f for droplist in all_droplists for f in get_filenames_from_droplist(output_dir, droplist)]
|
||||
drop_paths(all_files_to_drop, output_dir)
|
||||
drop_paths(all_droplists, output_dir)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user