👻

hatoというタスクランナーを作った話

に公開

タスクランナーは便利

タスクランナーは便利ですよね。ビルドやデプロイの時に打つ呪文を、短くまとめることができます。
というわけで僕はTaskfileを愛用してます。yamlで簡単に書けるからです。

一方で

コマンドが優秀でもそれを扱う僕という人間は間抜けです。どのくらい間抜けかと言うと

  • 仕様変更したのにREADMEの更新しない
  • バージョン上げ忘れ
  • git add .してるのでリポジトリに異物混入する

という始末。このまま行くといつか.envをpushすると思います。
そういう凡ミスを無くしたいなーと思って、ちょっと特殊なタスクランナーを作りました。

作った

https://github.com/midry3/hato

タスクを実行する前に、事前に書いておいたチェックリストを確認してくれるタスクランナーです。
例えば

hato.yml
# https://github.com/midry3/hato

commit:
  nargs: 1
  aliases:
    - c
  inform:
    - git status
  checklist:
    - Checked the stages?
    - Removed test debug codes?
    - Are you ok this commit message?
  actions:
    - git commit -m %1

と書いておけば

というように表示してくれます。
Enterで進み、Escで中断します。全てokなら

というようにタスクが実行されます。

その他詳しい仕様はREADMEを見てください。

便利

個人的には結構気に入ってるので、良ければ使ってみてください。

自分はほとんどコミット前の確認に使ってますが、CLIで働かせてるAIに使わせても良いかもしれないですね。例えばファイル削除タスクをrmとして登録しておき、「ファイル削除したいときはhato rm ファイル名を使えよ〜」と言っておくと事故が少なくなるんじゃないでしょうか(まあ-iで良いですが)。試しにGeminiに使わせた時、インタラクティブなツールの入力をさせてもらえてビックリしました。

インストールはgo installinstall.sh、もしくはバイナリを直接ダウンロードしてください。
あとは、今wingetでインストール出来るようにプルリク送ってる最中なので、マージ待ちです。

―――――――――追記―――――――――
マージされました。

> winget install --id Midry.hato

Discussion