rust
yeoman

yo rustmではじめるrustのモジュールづくり

TL;DR

yo rustmで、シュッとrustのモジュールを作り始められる。

$ yo rustm
? What do you want to name your module? gitconfig
? What is your module description? My splendid module
? What is your GitHub username? packsaddle
? What is the URL of your website? http://sane.jp
Initialized empty Git repository in /mnt/623D90F735FA5D47/sanemat/data/src/githu
b.com/packsaddle/rust-gitconfig/.git/
   create package.json
   create Cargo.toml
   create changelog.md
   create ci/install.sh
   create ci/script.sh
   create license-apache
   create license-mit
   create readme.md
   create src/lib.rs
   create .appveyor.yml
   create .conventional-changelog.context.js
   create .gitignore
   create .travis.yml

generator-rustm

cargo newだといろいろ足りない

もちろん謹製のコマンドでcargo newがあり、CLIなら --bin をつけることで、まずほんとの最小限のファイルは作成できる。

$ cargo new hello_world --bin
# あるいは
$ cargo new hello_world

$ tree hello_world/
hello_world/
├── Cargo.toml
└── src
    └── lib.rs

これだけでは cratesにpackageを登録するには、ちょっといろいろ足りないので、yo rustmではじめると便利。

yo rustmがやること

  • ci
  • tag打ったらzipでgithub releaseへ
    • windows, linux, mac で使えるバイナリをzip
    • zipには必要十分なファイルだけ入れる
  • readme
  • travis, appveyor, cratesのbadgeをreadmeに
  • changelog
  • ライセンス
  • cratesへのリリースに コレぐらいはあって欲しい Cargo.toml埋め

ci, zip releaseはtrust。changelogはconventional-changelog

便利ですね。

姉妹品 yo rustmc

CLIツール用には、 姉妹品のgenerator-rustmcが便利です。yo rustmc

インストール

npm i -g yo generator-rustm
# あるいは
npm i -g yo generator-rustmc

nodejsはあるよね。

tips

好きなディレクトリ名をつける

cargo newはその名前でディレクトリを作っちゃいます。ディレクトリ名はrust-your_crateにしたい若干面倒なひともyo rustmなら安心。

$ cargo new hello_world
     Created library `hello_world` project
$ tree hello_world/
hello_world/
├── Cargo.toml
└── src
    └── lib.rs

$ mkdir -p rust-your_crate
$ cd rust-your_crate/
$ yo rustm
? What do you want to name your module? your_crate
(snip)