Kekeの日記

エンジニア、読書なんでも

超絶便利!maidを使ってTaskRunnerでRustのタスクを実行する

https://cdn.guidingtech.com/media/assets/WordPress-Import/2014/01/markdown-logo2-300x201.png

本記事

本記事ではMarkdownでタスクランナーがかけるNode.js製のmaidというものを使ってみます。

特にmarkdownだと言語に縛られることもなく、好きな箇所で好きなように定義できるので便利です。

しかしながら、その柔軟性のためgalpやgruntなどのように高機能ではないので簡単なタスクをこなすために使ってみましょう。

今回はRustのプロジェクトに対して使いますが、Rustにはもともと[tasks]などでタスクを定義できます。しかしpackage.jsonにもscriptsフィールドがあってgalpなどがあるように、複雑なタスクをこなすためにタスクランナーを使います。

インストール方法

以下のようにインストールします。私はyarnを好んでいるのですが、好みに合わせてnpmを使ってもらっても構いません。

yarn global add maid

チーム開発ならば

yarn add maid --dev

のようにするとチーム内で共有できるでしょう。

タスクを定義

タスク定義ファイルを作成

ファイル名はmaidfile.mdでなければなりません。ファイルを作ります。

touch maidfile.md

タスクを定義する

以下のようにタスクを##を使って定義します。今回は簡単なタスクを定義します。

説明も追記することができます。

echo << EOF >> maidfile.md
## lint

lintします。

``bash
cargo fmt
``

## build

``bash
cargo build
``

## run

``bash
cargo run
``
EOF

実行できるタスクを表示

以下のようにタスク一覧を表示します。

maid help


  Tasks in maidfile.md:

  lint
      lintします。

  build
      No description

  run
      No description

タスクを実行する

実際にタスクを実行するには以下のコマンドを実行します。

maid lint

フックを設定する

タスクにはフックと呼ばれるものがあり、「すべてのタスクの前にしたいこと」などを設定できます。

現在、設定できるタスクは以下の通りです。

  • pre<taskName>
  • post<taskName>
  • afterAll
  • beforeAll

これを##で設定すればよいです。