diff --git a/recipes2html.py b/recipes2html.py index 69770cd..7949d80 100644 --- a/recipes2html.py +++ b/recipes2html.py @@ -2,12 +2,31 @@ from os import path, walk from recipe import Recipe from sys import argv + +def write_file_safely(filepath, content): + if path.exists(filepath): + response = input(f"File '{filepath}' exists. Overwrite? (y/N): ") + + if not response or not response.lower().startswith("y"): + print(f"Skipping '{filepath}'") + return + + with open(filepath, 'w') as file: + file.write(content) + + if len(argv) < 2: - print(f"Usage: {argv[0]} ") + print(f"Usage: {argv[0]} [index_header.html]") exit(1) recipe_dir = argv[1] +if len(argv) > 2: + with open(argv[2], 'r') as index_header_file: + index_header_html = index_header_file.read() +else: + index_header_html = "" + recipe_names = {} for dirpath, dirnames, filenames in walk(recipe_dir): for filename in filenames: @@ -17,8 +36,7 @@ for dirpath, dirnames, filenames in walk(recipe_dir): html = recipe.to_html() html_filepath = path.join(dirpath, f"{filename.rsplit('.', maxsplit=1)[0]}.html") - with open(html_filepath, 'w') as html_file: - html_file.write(html) + write_file_safely(html_filepath, html) recipe_names[recipe.name] = path.relpath(html_filepath, start=recipe_dir) @@ -32,20 +50,19 @@ index_html = f"""
-

Recipes

-

These are recipes that I'd like to share.

+{index_header_html}
-
+
+

Recipes

    {"\n".join([f"
  • {name}
  • " for name, filepath in recipe_names.items()])}
-
+ """ -with open(path.join(recipe_dir, "index.html"), 'w') as index_file: - index_file.write(index_html) +write_file_safely(path.join(recipe_dir, "index.html"), index_html)