app.py
python
| 1 | """Muse CLI — entry point for the ``muse`` console script. |
| 2 | |
| 3 | Core VCS commands:: |
| 4 | |
| 5 | init status log commit diff |
| 6 | show branch checkout merge reset |
| 7 | revert stash cherry-pick tag |
| 8 | """ |
| 9 | from __future__ import annotations |
| 10 | |
| 11 | import typer |
| 12 | |
| 13 | from muse.cli.commands import ( |
| 14 | branch, |
| 15 | cherry_pick, |
| 16 | checkout, |
| 17 | commit, |
| 18 | diff, |
| 19 | init, |
| 20 | log, |
| 21 | merge, |
| 22 | reset, |
| 23 | revert, |
| 24 | show, |
| 25 | stash, |
| 26 | status, |
| 27 | tag, |
| 28 | ) |
| 29 | |
| 30 | cli = typer.Typer( |
| 31 | name="muse", |
| 32 | help="Muse — domain-agnostic version control for multidimensional state.", |
| 33 | no_args_is_help=True, |
| 34 | ) |
| 35 | |
| 36 | cli.add_typer(init.app, name="init", help="Initialise a new Muse repository.") |
| 37 | cli.add_typer(commit.app, name="commit", help="Record the current working tree as a new version.") |
| 38 | cli.add_typer(status.app, name="status", help="Show working-tree drift against HEAD.") |
| 39 | cli.add_typer(log.app, name="log", help="Display commit history.") |
| 40 | cli.add_typer(diff.app, name="diff", help="Compare working tree against HEAD, or two commits.") |
| 41 | cli.add_typer(show.app, name="show", help="Inspect a commit: metadata, diff, files.") |
| 42 | cli.add_typer(branch.app, name="branch", help="List, create, or delete branches.") |
| 43 | cli.add_typer(checkout.app, name="checkout", help="Switch branches or restore working tree from a commit.") |
| 44 | cli.add_typer(merge.app, name="merge", help="Three-way merge a branch into the current branch.") |
| 45 | cli.add_typer(reset.app, name="reset", help="Move HEAD to a prior commit.") |
| 46 | cli.add_typer(revert.app, name="revert", help="Create a new commit that undoes a prior commit.") |
| 47 | cli.add_typer(cherry_pick.app, name="cherry-pick", help="Apply a specific commit's changes on top of HEAD.") |
| 48 | cli.add_typer(stash.app, name="stash", help="Shelve and restore uncommitted changes.") |
| 49 | cli.add_typer(tag.app, name="tag", help="Attach and query semantic tags on commits.") |
| 50 | |
| 51 | |
| 52 | if __name__ == "__main__": |
| 53 | cli() |