Add CLI commands (init, run, test, prompt)

This commit is contained in:
2026-02-04 12:30:05 +00:00
parent 883afe153f
commit 3caa23e692

View File

@@ -0,0 +1,29 @@
import click
from pathlib import Path
from promptforge.core.git_manager import GitManager
@click.command()
@click.argument("directory", type=click.Path(exists=False), default=".")
@click.option("--force", is_flag=True, help="Force reinitialization")
@click.pass_obj
def init(ctx, directory: str, force: bool):
"""Initialize a new PromptForge repository."""
prompts_dir = Path(directory) / "prompts"
git_manager = GitManager(prompts_dir)
if prompts_dir.exists() and not force:
if (prompts_dir / ".git").exists():
click.echo(f"PromptForge already initialized in {prompts_dir}")
return
try:
git_manager.init()
config_file = Path(directory) / "configs" / "promptforge.yaml"
if not config_file.exists():
config_file.parent.mkdir(parents=True, exist_ok=True)
config_file.touch()
click.echo(f"Initialized PromptForge in {prompts_dir}")
except Exception as e:
click.echo(f"Error: {e}", err=True)
raise click.Abort()