関連記事
Task (go-task) メモ-23 (loop over static list, ループ機能, 静的なリストをループ) - いろいろ備忘録日記
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
これまでの Task に関する記事は上の関連記事をご参照ください。
v3.28.0 から待望のループ機能が追加されました。これは嬉しいです。
ドキュメント上での記載は以下となります。
いろいろなやり方が記載されていますが、今回はタスクのソースをループするやつを。
基本形は以下のようになります
task-name: cmds: - for: loop-source cmd: command {{ .ITEM }}
ループ中の項目は {{ .ITEM }}
で参照できます。
サンプル
# https://taskfile.dev version: '3' tasks: default: deps: [clear-checksums] sources: - ./*.txt - ./*.go cmds: - for: sources cmd: stat {{ .ITEM }} | head -n 3 clear-checksums: cmds: - rm -rf ./.task
あらかじめ、ディレクトリには以下のようなファイルが存在する状態です。
$ find . -print | sed -e "s;[^/]*/;|____;g;s;____|; |;g" . |____.gitignore |____README.md |____Taskfile.yml |____hello.txt |____main1.go |____main2.go |____world.txt
treeコマンドが存在しない場合でも似た出力を行うやり方 - いろいろ備忘録日記
実行すると以下のようになります。
$ task --version Task version: v3.28.0 (h1:PGYGwevlGQdYrqhO6lLCYylC7YuGoQLlVwHkO42gf0I=) $ task task: [clear-checksums] rm -rf ./.task task: [default] stat hello.txt | head -n 3 File: hello.txt Size: 6 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 2776629405 Links: 1 task: [default] stat main1.go | head -n 3 File: main1.go Size: 85 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 2776629406 Links: 1 task: [default] stat main2.go | head -n 3 File: main2.go Size: 85 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 2776629407 Links: 1 task: [default] stat world.txt | head -n 3 File: world.txt Size: 6 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 2776629408 Links: 1
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。