Initial upload: ScaffoldForge CLI tool with full codebase, tests, and CI/CD
This commit is contained in:
30
scaffoldforge/cli/__init__.py
Normal file
30
scaffoldforge/cli/__init__.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
"""CLI module for ScaffoldForge."""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import click
|
||||||
|
|
||||||
|
from scaffoldforge.cli.commands import generate, preview, list_templates
|
||||||
|
from scaffoldforge.config import get_config
|
||||||
|
from scaffoldforge.parsers import IssueParser
|
||||||
|
from scaffoldforge.generators import StructureGenerator, CodeGenerator
|
||||||
|
from scaffoldforge.templates import TemplateEngine
|
||||||
|
|
||||||
|
|
||||||
|
@click.group()
|
||||||
|
@click.option("--verbose", "-v", is_flag=True, help="Enable verbose output")
|
||||||
|
@click.pass_context
|
||||||
|
def cli(ctx: click.Context, verbose: bool):
|
||||||
|
"""ScaffoldForge - Generate project scaffolds from GitHub issues."""
|
||||||
|
ctx.ensure_object(dict)
|
||||||
|
ctx.obj["verbose"] = verbose
|
||||||
|
config = get_config()
|
||||||
|
if verbose:
|
||||||
|
click.echo(f"Template directory: {config.get_template_dir()}")
|
||||||
|
click.echo(f"Output directory: {config.get_output_dir()}")
|
||||||
|
|
||||||
|
|
||||||
|
cli.add_command(generate, "generate")
|
||||||
|
cli.add_command(preview, "preview")
|
||||||
|
cli.add_command(list_templates, "list-templates")
|
||||||
Reference in New Issue
Block a user