Metadata-Version: 2.4
Name: 32r4-cli-demo
Version: 0.2.1
Summary: A publishable Typer CLI demo with hello, version, and self-update help.
Keywords: cli,typer,demo
Author: ezra
Author-email: ezra <ezra.ora.c@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: User Interfaces
Requires-Dist: typer>=0.24.1
Requires-Python: >=3.10
Project-URL: Homepage, https://github.com/32r4/cli-demo
Project-URL: Repository, https://github.com/32r4/cli-demo
Project-URL: Issues, https://github.com/32r4/cli-demo/issues
Description-Content-Type: text/markdown

# 32r4-cli-demo

`32r4-cli-demo` 是一个用 `Typer` 构建的最小 CLI 示例项目，现在已经补齐了发布和升级所需的基础结构。

## 安装

这个项目面向 `uv tool` 的使用方式来分发和升级。

### 从 PyPI 安装

包发布到 PyPI 后，其他人可以直接安装：

```powershell
uv tool install 32r4-cli-demo
```

### 直接从 GitHub 安装

在正式发布到 PyPI 之前，也可以直接从仓库安装：

```powershell
uv tool install git+https://github.com/32r4/cli-demo.git
```

## 使用

```powershell
cli-demo --help
cli-demo hello
cli-demo hello Ezra
cli-demo version
cli-demo update
```

### `cli-demo hello [NAME]`

输出一条问候语。

### `cli-demo version`

显示当前 CLI 版本。

### `cli-demo update`

使用 `uv tool` 升级当前 CLI。

```powershell
cli-demo update
cli-demo update --dry-run
```

说明：

- `cli-demo update` 会执行 `uv tool upgrade 32r4-cli-demo`
- `cli-demo update --dry-run` 只展示命令，不执行

## 发布到 PyPI

仓库已经包含 GitHub Actions 发布工作流 [`release.yml`](https://github.com/32r4/cli-demo/blob/main/.github/workflows/release.yml)，使用 PyPI Trusted Publishing。

首次发布前，你还需要在 PyPI 做一次配置：

1. 在 PyPI 创建 `32r4-cli-demo` 项目或添加 Trusted Publisher。
2. Publisher 类型选择 GitHub。
3. 仓库填写 `32r4/cli-demo`。
4. Workflow 文件名填写 `release.yml`。
5. Environment 填写 `pypi`。

配置完成后，发布方式有两种：

```powershell
git tag v0.2.1
git push origin v0.2.1
```

然后在 GitHub 上创建并发布对应 Release；或者直接手动触发 `release` 工作流。

## 本地验证

```powershell
uv sync
uv build
uv run cli-demo --help
uv run cli-demo hello
uv run cli-demo hello Ezra
uv run cli-demo version
uv run cli-demo update
uv run cli-demo update --dry-run
uv run python -m cli_demo --help
```
