From c76eae91784d9a1ee8884acf830fb2f859b5166c Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Fri, 12 Dec 2025 12:12:27 +0545 Subject: [PATCH] update --- devgen/cli/gitignore.py | 21 +++++++++++++-------- devgen/cli/license.py | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/devgen/cli/gitignore.py b/devgen/cli/gitignore.py index 2942046..14faee4 100644 --- a/devgen/cli/gitignore.py +++ b/devgen/cli/gitignore.py @@ -20,15 +20,16 @@ def list_templates( bool, typer.Option("--cached", "-c", help="List only cached templates.") ] = False, ) -> None: + """List available gitignore templates.""" generator = GitignoreGenerator() try: if cached: templates = generator.list_cached_templates() - typer.secho("Cached Templates:", fg=typer.colors.CYAN, bold=True) + typer.secho(" Cached Templates:", fg=typer.colors.CYAN, bold=True) else: typer.secho("Fetching available templates...", fg=typer.colors.YELLOW) templates = generator.list_available_templates() - typer.secho("Available Templates:", fg=typer.colors.CYAN, bold=True) + typer.secho(" Available Templates:", fg=typer.colors.CYAN, bold=True) if not templates: typer.echo("No templates found.") @@ -38,7 +39,7 @@ def list_templates( typer.echo(", ".join(templates)) except Exception as e: - typer.secho(f"Error: {e}", fg=typer.colors.RED) + typer.secho(f" Error: {e}", fg=typer.colors.RED) raise typer.Exit(code=1) @@ -67,6 +68,7 @@ def generate_gitignore( typer.Option("--offline", help="Use only cached templates."), ] = False, ) -> None: + """Generate a .gitignore file.""" generator = GitignoreGenerator() if not templates: @@ -79,7 +81,7 @@ def generate_gitignore( available = generator.list_available_templates() if not available: - typer.secho("No templates available.", fg=typer.colors.RED) + typer.secho(" No templates available.", fg=typer.colors.RED) raise typer.Exit(code=1) from devgen.utils import get_questionary_style @@ -103,11 +105,14 @@ def generate_gitignore( style=style, ).ask() + if choice is None: + raise typer.Exit(code=130) + if not choice or choice.startswith("Done"): break selected_templates.append(choice) - typer.secho(f"Added '{choice}'", fg=typer.colors.GREEN) + typer.secho(f"➕ Added '{choice}'", fg=typer.colors.GREEN) templates = selected_templates @@ -118,10 +123,10 @@ def generate_gitignore( except typer.Exit: raise except KeyboardInterrupt: - typer.secho("\n Cancelled by user", fg=typer.colors.YELLOW) + typer.secho("\nCancelled by user", fg=typer.colors.YELLOW) raise typer.Exit() except Exception as e: - typer.secho(f"Error fetching templates: {e}", fg=typer.colors.RED) + typer.secho(f"❌ Error fetching templates: {e}", fg=typer.colors.RED) raise typer.Exit(code=1) try: @@ -129,5 +134,5 @@ def generate_gitignore( templates, output_file=output, append=append, offline=offline ) except Exception as e: - typer.secho(f"Error generating .gitignore: {e}", fg=typer.colors.RED) + typer.secho(f"❌ Error generating .gitignore: {e}", fg=typer.colors.RED) raise typer.Exit(code=1) diff --git a/devgen/cli/license.py b/devgen/cli/license.py index eeeee85..282ba9e 100644 --- a/devgen/cli/license.py +++ b/devgen/cli/license.py @@ -26,11 +26,12 @@ def generate_license( ), ] = "LICENSE", ) -> None: + """Interactively generate a license file.""" generator = LicenseGenerator() licenses = generator.list_licenses() if not licenses: - typer.secho("❌ No license templates found.", fg=typer.colors.RED) + typer.secho(" No license templates found.", fg=typer.colors.RED) raise typer.Exit(code=1) from devgen.utils import get_questionary_style @@ -55,20 +56,27 @@ def generate_license( style=style, ).ask() + if license_key is None: + raise typer.Exit(code=130) + if not license_key: raise typer.Exit() # 2. Enter Author Name # Try to guess from git config if possible, but for now just empty default author = questionary.text("Enter Author Name:", style=style).ask() + if author is None: + raise typer.Exit(code=130) if not author: - typer.secho("❌ Author name is required.", fg=typer.colors.RED) + typer.secho(" Author name is required.", fg=typer.colors.RED) raise typer.Exit(code=1) # 3. Enter Year current_year = str(datetime.now().year) year = questionary.text("Enter Year:", default=current_year, style=style).ask() + if year is None: + raise typer.Exit(code=130) # Generate try: @@ -79,6 +87,8 @@ def generate_license( overwrite = questionary.confirm( f"File {output} already exists. Overwrite?", default=False, style=style ).ask() + if overwrite is None: + raise typer.Exit(code=130) if not overwrite: typer.secho("Operation cancelled.", fg=typer.colors.YELLOW) raise typer.Exit()