Hero Background

写一个简单的 CLI 工具

更新于 2026-05-14
技术

为什么写 CLI

有时候 GUI 太笨重,一个命令行工具就能解决的问题,没必要打开浏览器。

项目结构

Plain Text
my-cli/
├── Cargo.toml
├── src/
│   ├── main.rs
│   └── commands/
│       ├── mod.rs
│       ├── greet.rs
│       └── config.rs

用 clap 解析参数

Rust
use clap::{Parser, Subcommand};

#[derive(Parser)]
#[command(name = "my-cli")]
struct Cli {
    #[command(subcommand)]
    command: Commands,
}

#[derive(Subcommand)]
enum Commands {
    /// 打招呼
    Greet {
        name: String,
    },
    /// 查看配置
    Config,
}

发布到 GitHub Releases

配置 GitHub Actions 自动构建跨平台二进制:

YAML
name: Release
on:
  push:
    tags: ["v*"]

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - run: cargo build --release
      - uses: softprops/action-gh-release@v1
        with:
          files: target/release/my-cli*

效果

写完这个小工具之后,日常很多重复操作都自动化了。

©2026 fufu all|