Add language-neutral project onboarding
This commit is contained in:
parent
73165c9f51
commit
09c09300b1
8 changed files with 924 additions and 9 deletions
|
|
@ -12,6 +12,7 @@ from .application import CanonicalApplicationService, GenericCanonicalApplier
|
|||
from .context import compile_context
|
||||
from .errors import DocForgeError
|
||||
from .index import ProjectIndex
|
||||
from .onboarding import assess_project, scaffold_project
|
||||
from .project import Project, project_root_fingerprint
|
||||
from .rendering import RenderService
|
||||
from .viewer_manager import ViewerManagerClient
|
||||
|
|
@ -21,6 +22,12 @@ def _parser() -> argparse.ArgumentParser:
|
|||
parser = argparse.ArgumentParser(prog="docforge")
|
||||
parser.add_argument("--project-root", type=Path, required=True)
|
||||
commands = parser.add_subparsers(dest="command", required=True)
|
||||
onboard = commands.add_parser("onboard")
|
||||
onboard.add_argument("--language", action="append", default=[])
|
||||
onboard.add_argument("--scaffold", action="store_true")
|
||||
onboard.add_argument("--project-id")
|
||||
onboard.add_argument("--title")
|
||||
onboard.add_argument("--content-root", default="docs/docforge/content")
|
||||
commands.add_parser("info")
|
||||
commands.add_parser("validate")
|
||||
commands.add_parser("build")
|
||||
|
|
@ -72,6 +79,21 @@ def _parser() -> argparse.ArgumentParser:
|
|||
|
||||
|
||||
def _run(arguments: argparse.Namespace) -> dict[str, object]:
|
||||
if arguments.command == "onboard":
|
||||
languages = tuple(arguments.language)
|
||||
if arguments.scaffold:
|
||||
scaffold = scaffold_project(
|
||||
arguments.project_root,
|
||||
requested_languages=languages,
|
||||
project_id=arguments.project_id,
|
||||
title=arguments.title,
|
||||
content_root=arguments.content_root,
|
||||
)
|
||||
project = Project.open(arguments.project_root)
|
||||
build = ProjectIndex(project).build()
|
||||
render = RenderService(project).render("manual")
|
||||
return {**scaffold, "build": build, "render": render}
|
||||
return assess_project(arguments.project_root, requested_languages=languages)
|
||||
project = Project.open(arguments.project_root)
|
||||
index = ProjectIndex(project)
|
||||
if arguments.command == "info":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue