関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
これまでの Task に関する記事は上の関連記事をご参照ください。
v3.38.0 にて、以下の特殊変数が追加されました。
- CLI_SILENT
- 実行時に
--silent
が付与されていればtrueとなる
- 実行時に
- CLI_VERBOSE
- 実行時に
--verbose
が付与されていればtrueとなる
- 実行時に
実行するアプリケーションに -verbose
オプションや -silent
オプションのようなものが存在する場合は、今回追加された特殊変数の値によって切り替えて実行したり出来ますね。
サンプル
以下のようなタスクファイルを用意します。
# https://taskfile.dev version: '3' tasks: default: cmds: - go build -o app . - ./app {{- if .CLI_SILENT}} -s {{end -}}{{- if .CLI_VERBOSE}} -v {{end -}}
サンプルアプリとして、以下のGoファイルを用意。
package main import ( "flag" "fmt" "io" "os" ) func main() { var ( silent bool verbose bool ) flag.BoolVar(&silent, "s", false, "silent mode") flag.BoolVar(&verbose, "v", false, "verbose mode") flag.Parse() var ( appW io.Writer = os.Stdout dbgW io.Writer = os.Stdout withLf = func(s string) string { return fmt.Sprintf("%s\n", s) } ) if silent { dbgW = io.Discard } if verbose { io.WriteString(appW, withLf("zero")) } io.WriteString(appW, withLf("first")) io.WriteString(dbgW, withLf("second")) if verbose { io.WriteString(appW, withLf("fourth")) } }
実行すると以下のように、特殊変数の値によってパラメータが切り換わっているのが分かります。
$ task task: [default] go build -o app . task: [default] ./app first second $ task --silent first $ task --verbose task: [/workspace/try-gotask/31.v338-special-variable] Not found - Using alternative (Taskfile.yml) task: "default" started task: [default] go build -o app . task: [default] ./app -v zero first second fourth task: "default" finished $ task --silent --verbose task: [/workspace/try-gotask/31.v338-special-variable] Not found - Using alternative (Taskfile.yml) task: "default" started task: [default] go build -o app . task: [default] ./app -s -v zero first fourth task: "default" finished
try-gotask/31.v338-cli_silent-cli_verbose at main · devlights/try-gotask · GitHub
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。