diff --git a/scraper/src/libretexts2zim/entrypoint.py b/scraper/src/libretexts2zim/entrypoint.py index 0cdd6dd..2ed9c37 100644 --- a/scraper/src/libretexts2zim/entrypoint.py +++ b/scraper/src/libretexts2zim/entrypoint.py @@ -60,6 +60,13 @@ def main() -> None: default=os.getenv("LIBRETEXTS_ZIMUI_DIST", "../zimui/dist"), ) + parser.add_argument( + "--overwrite", + help="Do not fail if ZIM already exists, overwrite it", + action="store_true", + default=False, + ) + # ZIM configuration flags ZimConfig.add_flags( parser, @@ -94,6 +101,7 @@ def main() -> None: output_folder=args.output_folder, zimui_dist=args.zimui_dist, content_filter=doc_filter, + overwrite_existing_zim=args.overwrite, ).run() except Exception as e: logger.exception(e) diff --git a/scraper/src/libretexts2zim/generator.py b/scraper/src/libretexts2zim/generator.py index f857713..314e03c 100644 --- a/scraper/src/libretexts2zim/generator.py +++ b/scraper/src/libretexts2zim/generator.py @@ -109,6 +109,8 @@ def __init__( content_filter: ContentFilter, output_folder: str, zimui_dist: str, + *, + overwrite_existing_zim: bool, ) -> None: """Initializes Generator. @@ -117,12 +119,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: Directory to write ZIMs into. + 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 = Path(zimui_dist) + self.overwrite_existing_zim = overwrite_existing_zim os.makedirs(self.output_folder, exist_ok=True) @@ -154,7 +159,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(f"ZIM file already exists at {zim_path}")