いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Task (go-task) メモ-22 (preconditions, 事前条件)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

これまでの Task に関する記事は上の関連記事をご参照ください。

Taskには、タスク実行時に事前条件を満たしているかのチェックを付与することが出来ます。

タスクに preconditions を定義すれば事前条件を満たしていない場合に実行されないように出来ます。

サンプル

# https://taskfile.dev

version: '3'

vars:
  KENALL: utf_all.csv

tasks:
  default:
    preconditions:
      - (! test -f {{.KENALL}})
    cmds:
      - wget https://www.post.japanpost.jp/zipcode/{{.KENALL}}

実行すると以下のようになります。

$ task
task: [default] wget https://www.post.japanpost.jp/zipcode/utf_all.csv
--2023-07-19 07:51:38--  https://www.post.japanpost.jp/zipcode/utf_all.csv
Resolving www.post.japanpost.jp (www.post.japanpost.jp)... 43.253.48.17
Connecting to www.post.japanpost.jp (www.post.japanpost.jp)|43.253.48.17|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18305986 (17M) [text/csv]
Saving to: ‘utf_all.csv’

utf_all.csv                                            100%[==========================================================================================================================>]  17.46M  1.78MB/s    in 10s     

2023-07-19 07:51:49 (1.66 MB/s) - ‘utf_all.csv’ saved [18305986/18305986]



$ task
task: `(! test -f utf_all.csv)` failed
task: precondition not met

2回目は既にファイルが存在するので、タスクが実行されていません。

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。