Source code for minos.cli.api.new

from pathlib import (
    Path,
)

import typer

from ..consoles import (
    console,
)
from ..pathlib import (
    get_microservices_directory,
)
from ..templating import (
    TemplateFetcher,
    TemplateProcessor,
)

app = typer.Typer(add_completion=False)


[docs]@app.command("project") def new_project(path: Path) -> None: """Initialize a project on the given directory.""" console.print(":wrench: Creating new Project...\n") fetcher = TemplateFetcher.from_name("project-init") processor = TemplateProcessor.from_fetcher(fetcher, path.absolute(), defaults={"project_name": path.name}) processor.render()
[docs]@app.command("microservice") def new_microservice(name: str) -> None: """Initialize a microservice on the given directory.""" console.print(":wrench: Creating new Microservice...\n") try: microservice_path = get_microservices_directory(Path.cwd()) / name except ValueError: console.print("No Minos project found. Consider using 'minos new project'") raise typer.Exit(code=1) fetcher = TemplateFetcher.from_name("microservice-init") processor = TemplateProcessor.from_fetcher(fetcher, microservice_path, defaults={"name": name}) processor.render() (microservice_path / ".build_docker_compose.txt").unlink()
[docs]@app.callback() def callback(): """Creates a new project or microservice in a given path"""