Files
jpm/jeAddons/registry.py
T
Christoph d5f1dd6366 Implements jeaddons CLI tool
Adds a CLI tool to copy files or folders from a git repository into the current project based on a registry.

The tool provides commands to:
- `add`: Copies files/folders based on registry entries.
- `list`: Lists available registry entries.

Registry entries are defined in `jeAddons/registry.py`.
The tool supports overriding the registry's ref and destination.
2026-02-11 22:18:38 +01:00

38 lines
907 B
Python

from typing import TypedDict
class RegistryEntry(TypedDict, total=False):
repo: str
path: str
ref: str
dest: str
# Manage your repositories, files, and folders here.
# Key = addon name you pass to `jeaddons add <name>`.
REGISTRY: dict[str, RegistryEntry] = {
# "button": {
# "repo": "https://github.com/your-org/templates.git",
# "path": "src/components/Button.tsx",
# "ref": "main",
# "dest": "src/components",
# },
# "ui": {
# "repo": "https://github.com/your-org/templates.git",
# "path": "src/components/ui",
# "ref": "v1.2.0",
# "dest": "src/components",
# },
}
def load_registry() -> dict[str, RegistryEntry]:
return REGISTRY
def get_registry_entry(name: str) -> RegistryEntry:
registry = load_registry()
if name not in registry:
raise KeyError(name)
return registry[name]