Cocogitto registration for generated workspace members.
register_cog_member
register_cog_member(spec: WorkspaceMemberSpec) -> None
Append one idempotent Cocogitto package section when cog.toml exists.
Source code in repo_scaffold/workspace_member/cog.py
| def register_cog_member(spec: WorkspaceMemberSpec) -> None:
"""Append one idempotent Cocogitto package section when cog.toml exists."""
cog_path = spec.project_path / "cog.toml"
if not cog_path.is_file():
click.echo("No cog.toml found; skipping release registration.")
return
content = cog_path.read_text(encoding="utf-8")
section = f"[packages.{spec.name}]"
if section in content:
raise click.ClickException(f"{section} already exists in cog.toml.")
hook = _pre_bump_hook(spec)
public_api = str(spec.public_api).lower()
relative_path = f"{spec.location}/{spec.name}"
addition = (
f"\n{section}\n"
f'path = "{relative_path}"\n'
f"public_api = {public_api}\n"
f'changelog_path = "{relative_path}/CHANGELOG.md"\n'
"pre_bump_hooks = [\n"
f' "{hook}",\n'
"]\n"
)
cog_path.write_text(content.rstrip() + "\n" + addition, encoding="utf-8")
|