Taskを使ってみる

Makefileを使うのが個人的に辛かったので、Taskというツールを試している

Goで実装されているタスクランナーツールで、yamlファイルで設定を書くことができる。
yamlファイル自体はGithub Actionsなどでも書いているので、自分は違和感なく入ることができた。

ドキュメントもしっかり作られているものの、まだ参考になるブログ記事などが少なく、使いこなすにはそれなりに苦労する。

brewでインストールする際は go-task となっているので注意。

brew install go-task

現在ははてなブログ関連の処理を自動化するために使っている。

version: 3

tasks:
  pull:
    cmds:
      - blogsync pull piruty2.hatenablog.jp
  push:
    cmds:
      - task: check_args
      - blogsync push {{.CLI_ARGS}}
  draft:
    cmds:
      - task: check_args
      - blogsync post --draft --custom-path={{now | date "2006/01/02"}}/{{.CLI_ARGS}} piruty2.hatenablog.jp < draft.md
  check_args:
    preconditions:
      - sh: (! {{empty .CLI_ARGS}})
        msg: 引数がありません

pull/push/draftという3つのタスクが実装されており、blogsyncコマンドを使ってはてなブログとやり取りする
cmdsに記述されたコマンドが順番に実行される

引数が必要なタスクについては、 check_argsタスクを実行して引数をチェックする。
preconditionsを使うことで、コマンドが実行される前に確認を行う
引数自体は .CLI_ARGS で参照できる

また、emptynow, dateなど、Go関連のコマンドを直接実行できるようになっている

個人的にはGo言語も嫌いではないので、これを気にGo言語に再入門しようかとも考えている