😷

go-task のデフォルトタスク

2024/12/20に公開1

tl;dr

  • taskfile のデフォルトタスクはいつでも何回でも実行可能であるべき
  • 誤解なく役に立つものが望ましい

default の雛形

  • 以前にも掲載しているけど、今のところ default task の最新はこう
Taskfile.yml
# yaml-language-server: $schema=https://taskfile.dev/schema.json
# https://taskfile.dev/

version: '3'

tasks:
  default:
    cmds:
      - task --list --sort alphanumeric -t {{.TASKFILE}}
    silent: true

ちょっとしたメモ

  • alias t='task' しておくと楽(alias tf='terraform'
  • tasktask default は同じ(つまり t と同じ)
  • 並べ替えは使うタスクの数や整理によって使い分けるといい(ソートオプションで工夫できる)
  • タスクファイルを指定しておくと複数のファイルで使い分けしやすい
  • desc を指定せず、silent にすることで必要な情報だけ表示させる
  • cmds を使用してコマンドを増減しやすくしておくと楽(cmdを使用するとちょっとした時にだるい)
  • 複数リポジトリやディレクトリでタスクを使うと、どのタスクを叩けばいいのか迷ったりするので、デフォルトはタスクのリストにするのが安全で親切であると確信している

default タスクで工夫するアイデア

  • タスクのリストを表示するのは前述のとおり
  • 慣れるとリスト以外にも何か表示したくなるのが人情(違)
  • いつでも何回でも気軽に t と打てるようにしておく

todo を表示する

  • __* のようにリポジトリに反映しないテキストファイルを gitignore しておく
  • cmds:- cat __todo.md を追加する
$ cat __todo.md

# TODO

- 筋トレ
- 分読書
- 言語化トレーニング

# プライベートの my-til リポジトリでの例
$ t
task: Available tasks for this project:
* til:                    how was today(yesterday)      (aliases: t)
* til_pull_request:       (include til) gh pr
* til_push:               (include til) git add, commit, push for til
* til_today:              (include til) generate issue for today
* til_yesterday:          (include til) report in yesterday's issue

# TODO

- 筋トレ
- 読書
- 言語化トレーニング

Issue を表示する

# zenn の記事を管理しているリポジトリでの例
zenn $ t
task: Available tasks for this project:
* raki:                generate articles                  (aliases: r)
* raki:git:            auto git, use -- COMMIT TITLE      (aliases: rg)
* terraform:           generate articles                  (aliases: t)
* terraform:git:       auto git, use -- COMMIT TITLE      (aliases: tg)

Showing 9 of 9 open issues in officel/zenn

ID    TITLE                     LABELS             UPDATED
#197  12/16 terraform-jp        zenn.terraform-jp  about 4 days ago
#196  12/16 blog                zenn.blog          about 4 days ago
#193  12/09 terraform-jp        zenn.terraform-jp  about 11 days ago
#192  12/09 blog                zenn.blog          about 11 days ago
#189  12/02 terraform-jp        zenn.terraform-jp  about 18 days ago
#188  12/02 blog                zenn.blog          about 18 days ago
#186  11/25 terraform-jp        zenn.terraform-jp  about 25 days ago
#182  11/18 terraform-jp        zenn.terraform-jp  about 1 month ago
#180  アドカレ: 12/22 taskfile                     about 1 month ago

その他

  • API を叩けばなんでも取ってこれる、が個人的にはあまり必要なかった
  • fortune を自前で書いているのでいくつか呼び出しを作った
  • ずっと同じだと飽きるので、乱数を使って出し分けをするなど、別の工夫は勉強になった

まとめ

  • default task はタスクのリストを表示
  • いつでも何回でも気軽に叩けるようにしておく
  • todo や issue などを出力させると次に何をするべきかに注意が向いていいよ
  • 絵文字に task がないのでアイコンは mask(ダジャレ)

Discussion