笔者此前没开发过 Rust Cli

于是在业余时间作为练手搞了个命令行一笔画绘线工具: Stroke

工具架构

.
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── README.md
├── src
│   └── main.rs
└── target

使用 Clap + Cai架构图怎么画ro RS 作为项目基础

clap = { version = "3.1.10", features = ["derive"] }
cairo-rs = { version = "0.15.10", features = ["png"] }

设计 Clap Cli 接口定义

struct Stroke {
    #[clap(short, long, default_value = "00ffff")]
    color: String,
    #[clap(short, long, default_value = "output.png")]
    output: String,
    #[clap(short, long)]
    view: bool,
    to: Vec<f64>,
}

设计 [解析]+[绘制] 的主要流程

let stk = Stroke::parse();
let (points, size) = stk.get_points_and_size();
if points.len() < 2 {
    println!("n Maybe you need run:n  stroke -h");
    return;
}
stk.draw(points, size);
stk.open();

创建 Homebrew Tap

class Stroke < Formula
  desc "A MacOS command stroke tool written in Rust"
  homepage "https://github.com/meloalright/stroke"
  url "https://github.com/meloalright/stroke/releases/download/0.1.2/stroke.zip"
  sha256 "cfb991af3fa6012fd59002a33077c6a1921721e4f9e2324c09e1897a2af07be3"
  license "MIT"
  def install
    bin.install "stroke"
    system "#{bin}/stroke -V"
  end
  test do
    system "#{bin}/stroke -V"
  end
end

跑一下试试

Rust Cli 开发练手 - Mac 命令行一笔画绘线工具

鸣谢

感谢大家阅读 欢迎提出建议 或者点个 ⭐️

仓库链接 Repo: Stroke