Add a Phase 4 'm2pack commands' section to docs/cli.md with each subcommand's flags and a pointer at the m2pack-secure repo for installation. Update README.md with a short m2pack paragraph and append the Phase 4 entry to the Unreleased CHANGELOG section.
60 lines
1.8 KiB
Markdown
60 lines
1.8 KiB
Markdown
# metin-release-cli
|
|
|
|
Python CLI that orchestrates Metin2 client releases — builds manifests, signs
|
|
them, uploads content-addressed blobs, and promotes the new release atomically.
|
|
|
|
Phase 1 wraps `make-manifest.py` and `sign-manifest.py` from the `m2dev-client`
|
|
repo and adds remote diff, upload, promote, and public verification.
|
|
|
|
## Install
|
|
|
|
```
|
|
pip install -e .[dev]
|
|
```
|
|
|
|
## Usage
|
|
|
|
```
|
|
metin-release --help
|
|
metin-release release inspect --source /path/to/client
|
|
metin-release release publish --source ... --version 2026.04.14-1 ...
|
|
```
|
|
|
|
Add `--json` to get a machine-parseable envelope on stdout. Exit codes:
|
|
|
|
| Code | Meaning |
|
|
|------|--------------------------------------|
|
|
| 0 | success |
|
|
| 1 | operator / validation error |
|
|
| 2 | remote or network error |
|
|
| 3 | signing or integrity error |
|
|
| 4 | reserved (ERP sync, Phase 2+) |
|
|
|
|
See `docs/cli.md` for the full command reference.
|
|
|
|
## m2pack commands
|
|
|
|
Phase 4 adds a `metin-release m2pack …` command group that wraps the
|
|
[`m2pack-secure`](https://gitea.jakubkadlec.dev/metin-server/m2pack-secure)
|
|
binary for building, verifying, diffing, and runtime-key-exporting
|
|
signed `.m2p` archives. The binary is not bundled — build it from the
|
|
m2pack-secure repo and either put it on `PATH` or set `M2PACK_BINARY`
|
|
to an absolute path.
|
|
|
|
```
|
|
metin-release m2pack build --input ... --output a.m2p --key ck --sign-secret-key sk
|
|
metin-release m2pack verify --archive a.m2p --public-key pk
|
|
```
|
|
|
|
## MCP server
|
|
|
|
The `metin-release-mcp` console script (Phase 3) exposes each Phase 1
|
|
subcommand as an MCP tool over stdio. Install with the `mcp` extra:
|
|
|
|
```
|
|
pip install -e .[mcp]
|
|
metin-release-mcp --help
|
|
```
|
|
|
|
See `docs/mcp.md` for tool list, client wiring, and error handling.
|