- get_myclaude_project_root() now expands ~ in MYCLAUDE_PROJECT_ROOT (was resolving to ./~/path instead of $HOME/path) - Extract hardcoded 16/8 depth limits as _MAX_WALK_DEPTH / _MAX_SOURCE_DEPTH - Remove redundant cwd= from _run_pip_editable (already specified via -e) - Add test_cwd_invalid_directory and test_env_var_expands_tilde - Remove incorrect test_extra_args_forwarded (click.Group does not support forwarding arbitrary args; ctx.args is always empty)
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
"""Reinstall myclaude from the local repo."""
|
|
|
|
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
import click
|
|
from rich.console import Console
|
|
|
|
from bin.project_root import get_myclaude_project_root
|
|
|
|
console = Console()
|
|
stderr_console = Console(stderr=True)
|
|
|
|
|
|
def _run_make_install(root: Path) -> int:
|
|
return subprocess.run(
|
|
["make", "install"],
|
|
cwd=str(root),
|
|
check=False,
|
|
).returncode
|
|
|
|
|
|
def _run_pip_editable(root: Path) -> int:
|
|
cmd = [sys.executable, "-m", "pip", "install", "-e", str(root)]
|
|
return subprocess.run(cmd, check=False).returncode
|
|
|
|
|
|
@click.command("update")
|
|
def update_cmd() -> None:
|
|
"""Reinstall myclaude from this repository (make install, or pip install -e)."""
|
|
root = get_myclaude_project_root()
|
|
fallback = Path.home() / ".myclaude"
|
|
if root == fallback:
|
|
stderr_console.print(
|
|
"[red]Not inside myclaude repo.[/red] Set [cyan]MYCLAUDE_PROJECT_ROOT[/cyan] "
|
|
"or run from the clone.",
|
|
)
|
|
raise SystemExit(1)
|
|
|
|
console.print("[bold cyan]Updating myclaude…[/bold cyan]")
|
|
makefile = root / "Makefile"
|
|
if makefile.is_file():
|
|
rc = _run_make_install(root)
|
|
if rc != 0:
|
|
console.print(
|
|
"[yellow]make install failed, trying pip -e…[/yellow]"
|
|
)
|
|
rc = _run_pip_editable(root)
|
|
else:
|
|
rc = _run_pip_editable(root)
|
|
|
|
if rc != 0:
|
|
stderr_console.print("[red]Update failed.[/red]")
|
|
raise SystemExit(rc)
|
|
console.print("[green]myclaude updated.[/green]")
|