From 8a39ef34f76ba8e20ee4d36920be8578c990fed7 Mon Sep 17 00:00:00 2001 From: err0rgod Date: Mon, 20 Jul 2026 19:51:20 +0530 Subject: [PATCH] Fix incomplete directory cleanup on scaffolding failure --- src/fastapi_new/new.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/fastapi_new/new.py b/src/fastapi_new/new.py index f333ca2..a8ca7d6 100644 --- a/src/fastapi_new/new.py +++ b/src/fastapi_new/new.py @@ -196,18 +196,27 @@ def new( "uv is required to create new projects. Install it from https://docs.astral.sh/uv/getting-started/installation/", ) - _setup(toolkit, config) + try: + _setup(toolkit, config) - toolkit.print_line() - - _install_dependencies(toolkit, config) + toolkit.print_line() - toolkit.print_line() + _install_dependencies(toolkit, config) - _write_template_files(toolkit, config) + toolkit.print_line() - toolkit.print_line() + _write_template_files(toolkit, config) + toolkit.print_line() + except typer.Exit as e: + # if we create a new directory and error occured, clean it up + if not current_dir and config.path.exists(): + shutil.rmtree(config.path, ignore_errors=True) + toolkit.print( + "[yellow]Cleaned up incomplete directory[/yellow]" + ) + # re raising the exit so the program still terminates properly + raise e # Print success message if not current_dir: toolkit.print(