From e86c6c8de8ae7aec31748dadf0170638a102c0f5 Mon Sep 17 00:00:00 2001 From: benoit74 Date: Fri, 27 Sep 2024 12:29:25 +0000 Subject: [PATCH] Add option to overwrite existing ZIM --- scraper/src/libretexts2zim/entrypoint.py | 8 ++++++++ scraper/src/libretexts2zim/processor.py | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scraper/src/libretexts2zim/entrypoint.py b/scraper/src/libretexts2zim/entrypoint.py index 6850e80..7edcf76 100644 --- a/scraper/src/libretexts2zim/entrypoint.py +++ b/scraper/src/libretexts2zim/entrypoint.py @@ -157,6 +157,13 @@ def main() -> None: required=True, ) + parser.add_argument( + "--overwrite", + help="Do not fail if ZIM already exists, overwrite it", + action="store_true", + default=False, + ) + # ZIM configuration flags add_zim_config_flags(parser, zim_defaults()) @@ -201,6 +208,7 @@ def main() -> None: output_folder=Path(args.output_folder), zimui_dist=Path(args.zimui_dist), content_filter=doc_filter, + overwrite_existing_zim=args.overwrite, ).run() except SystemExit: logger.error("Generation failed, exiting") diff --git a/scraper/src/libretexts2zim/processor.py b/scraper/src/libretexts2zim/processor.py index 33f10a0..90bacb6 100644 --- a/scraper/src/libretexts2zim/processor.py +++ b/scraper/src/libretexts2zim/processor.py @@ -97,6 +97,8 @@ def __init__( content_filter: ContentFilter, output_folder: Path, zimui_dist: Path, + *, + overwrite_existing_zim: bool, ) -> None: """Initializes Processor. @@ -105,12 +107,15 @@ def __init__( zim_config: Configuration for ZIM metadata. content_filter: User supplied filter selecting with content to convert. output_folder: Directory to write ZIMs into. + zimui_dist: Build directory where Vite placed compiled Vue.JS frontend. + overwrite_existing_zim: Do not fail if ZIM already exists, overwrite it. """ self.libretexts_client = libretexts_client self.zim_config = zim_config self.doc_filter = content_filter self.output_folder = output_folder self.zimui_dist = zimui_dist + self.overwrite_existing_zim = overwrite_existing_zim self.output_folder.mkdir(exist_ok=True) @@ -142,7 +147,7 @@ def run(self) -> Path: formatted_config = self.zim_config.format(metadata.placeholders()) zim_path = Path(self.output_folder, f"{formatted_config.file_name_format}.zim") - if zim_path.exists(): + if zim_path.exists() and not self.overwrite_existing_zim: logger.error(f" {zim_path} already exists, aborting.") raise SystemExit(2)