Files
myagents/bin/commands/update.py
T
Zhengshou Lai ab597d1d02 refactor: rename source dir to bin, reorganize templates, remove personal info
- Rename myclaude/ source directory → bin/
- Update all Python imports (myclaude.* → bin.*) and mock patch paths
- Update pyproject.toml: entry point and packages config
- Move workspace_template/ → templates/workspace/ for future extensibility
- Migrate .claude/skills/ to global ~/.claude/skills/ and remove local copies
- Remove SessionStart hook (sync-global.sh) from settings.local.json
- Remove unrelated script rename_funcs_to_snake.py
- Remove personal info (name, org, paths) from CLAUDE.md, README.md, settings
- Update .gitignore with standard Python/runtime exclusions
- Clean .DS_Store, __pycache__, .mypy_cache, .pytest_cache, .ruff_cache,
  .playwright-mcp runtime files
2026-04-26 09:37:13 +08:00

55 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, cwd=str(root), 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]")