Help us understand the problem. What is going on with this article?

cargo-makeをrust以外で利用するときの便利tips

cargo-makeはrust製のタスクランナーです。
makeより書きやすい(主観)形式のため非常に便利に複雑なタスクを作成できます。

基本cargoに組み合わせて使う想定ですが、バイナリ単体で配布されているため以下のように直接バイナリをインストールすればcargoがなくても利用できます。

 curl -L -O https://github.com/sagiegurari/cargo-make/releases/download/0.31.0/cargo-make-v0.31.0-x86_64-unknown-linux-musl.zip \
  && unzip cargo-make-v0.31.0-x86_64-unknown-linux-musl.zip \
  && cp cargo-make-v0.31.0-x86_64-unknown-linux-musl/cargo-make /usr/local/bin/cargo-make

インストールの依存関係が無いため標準のタスクランナーとしてもおすすめです。
このようにrust意外で利用するときの便利なtipsをまとめました。

makersで利用可能にする

cargoでインストールするとmakersコマンドで実行できますが、バイナリで入れた場合はcargo-make make と引数makeを必ず指定しなければなりません。
これは面倒なので以下のようにmakerscargo-make makeを呼び出すようにすると便利です。
シェルのエイリアスでも良いですが、この方法だとDockerコンテナ内でもかんたんに使えるのでおすすめです。

echo '#!/bin/bash\ncargo-make make "$@"' > /usr/local/bin/makers && \
chmod +x /usr/local/bin/makers

デフォルトで用意されているタスクをすべて無効化する

cargo-makeはcargo用なのでrustプロジェクトでよく使うタスクがデフォルトで大量に用意されています。
ですがrust以外で使うときは必要ないのでまとめて消したくなります。
このような場合、以下の設定をMakefile.tomlに書くことで既存のタスクをすべて無効化でき、
自分で追加したものだけにできます。

[config]
skip_core_tasks = true

引数をdocker-composeを起動して実行する

以下のようなタスクを用意すると、 makers docker_run makers build のようにdockerコンテナ内で引数のコマンドを実行できます。
手元に開発環境を入れたくない場合やコードジェネレーターなどdockerコンテナ内で実行したいが頻繁に実行するようなタスクを便利にできます。

[tasks.docker_run]
 category = "develop"
 description = "docker-composeでコマンドを実行します (e.g. makers docker_run makers build)"
 command = "docker-compose"
 args = ["exec", "app", "${@}"]
pfn
Make the real world computable / 現実世界を計算可能にする
https://preferred.jp/ja/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした