{"id":16105783,"url":"https://github.com/devlights/try-gotask","last_synced_at":"2025-10-13T07:09:48.724Z","repository":{"id":39972500,"uuid":"493558598","full_name":"devlights/try-gotask","owner":"devlights","description":"Task (go-task) [https://taskfile.dev/] の使い方についてのメモです。","archived":false,"fork":false,"pushed_at":"2025-09-19T07:53:25.000Z","size":96,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-19T09:43:33.370Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devlights.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-18T07:38:36.000Z","updated_at":"2025-09-19T07:53:25.000Z","dependencies_parsed_at":"2024-04-14T10:36:30.456Z","dependency_job_id":"e478a428-166d-4017-a536-412a1c423f33","html_url":"https://github.com/devlights/try-gotask","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/devlights/try-gotask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlights%2Ftry-gotask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlights%2Ftry-gotask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlights%2Ftry-gotask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlights%2Ftry-gotask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devlights","download_url":"https://codeload.github.com/devlights/try-gotask/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devlights%2Ftry-gotask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014105,"owners_count":26085461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T19:10:37.011Z","updated_at":"2025-10-13T07:09:48.719Z","avatar_url":"https://github.com/devlights.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 概要\n\nこのリポジトリには、[Task](https://github.com/go-task/task) についての自分用のメモが置いてあります。\n\n## リスト\n\n| directory                          | readme                                                 | taskfile                                                        |\n| ---------------------------------- | ------------------------------------------------------ | --------------------------------------------------------------- |\n| 01.helloworld                      | [README](01.helloworld/README.md)                      | [Taskfile.yml](01.helloworld/Taskfile.yml)                      |\n| 02.cli-options                     | [README](02.cli-options/README.md)                     |                                                                 |\n| 03.default-task                    | [README](03.default-task/README.md)                    | [Taskfile.yml](03.default-task/Taskfile.yml)                    |\n| 04.env                             |                                                        | [Taskfile.yml](04.env/Taskfile.yml)                             |\n| 05.dotenv                          |                                                        | [Taskfile.yml](05.dotenv/Taskfile.yml)                          |\n| 06.include                         |                                                        | [Taskfile.yml](06.include/Taskfile.yml)                         |\n| 07.no-color                        | [README](07.no-color/README.md)                        | [Taskfile.yml](07.no-color/Taskfile.yml)                        |\n| 08.silent                          | [README](08.silent/README.md)                          | [Taskfile.yml](08.silent/Taskfile.yml)                          |\n| 09.os-specific                     |                                                        | [Taskfile.yml](09.os-specific/Taskfile.yml)                     |\n| 10.variable                        |                                                        | [Taskfile.yml](10.variable/Taskfile.yml)                        |\n| 11.cliargs                         | [README](11.cliargs/README.md)                         | [Taskfile.yml](11.cliargs/Taskfile.yml)                         |\n| 12.defer                           | [README](12.defer/README.md)                           | [Taskfile.yml](12.defer/Taskfile.yml)                           |\n| 13.internal-task                   | [README](13.internal-task/README.md)                   | [Taskfile.yml](13.internal-task/Taskfile.yml)                   |\n| 14.shopt                           | [README](14.shopt/README.md)                           | [Taskfile.yml](14.shopt/Taskfile.yml)                           |\n| 15.single-command-task             | [README](15.single-command-task/README.md)             | [Taskfile.yml](15.single-command-task/Taskfile.yml)             |\n| 16.prompt                          | [README](16.prompt/README.md)                          | [Taskfile.yml](16.prompt/Taskfile.yml)                          |\n| 17.dryrun                          | [README](17.dryrun/README.md)                          | [Taskfile.yml](17.dryrun/Taskfile.yml)                          |\n| 18.preconditions                   | [README](18.preconditions/README.md)                   | [Taskfile.yml](18.preconditions/Taskfile.yml)                   |\n| 19.loop-over-static-list           | [README](19.loop-over-static-list/README.md)           | [Taskfile.yml](19.loop-over-static-list/Taskfile.yml)           |\n| 20.loop-over-task-source           | [README](20.loop-over-task-source/README.md)           | [Taskfile.yml](20.loop-over-task-source/Taskfile.yml)           |\n| 21.loop-over-variables             | [README](21.loop-over-variables/README.md)             | [Taskfile.yml](21.loop-over-variables/Taskfile.yml)             |\n| 22.loop-rename-variables           | [README](22.loop-rename-variables/README.md)           | [Taskfile.yml](22.loop-rename-variables/Taskfile.yml)           |\n| 23.loop-over-task                  | [README](23.loop-over-task/README.md)                  | [Taskfile.yml](23.loop-over-task/Taskfile.yml)                  |\n| 24.prevent-same-build              | [README](24.prevent-same-build/README.md)              | [Taskfile.yml](24.prevent-same-build/Taskfile.yml)              |\n| 25.run-cmd-on-windows              | [README](25.run-cmd-on-windows/README.md)              | [Taskfile.yml](25.run-cmd-on-windows/Taskfile.yml)              |\n| 26.global-taskfile                 | [README](26.global-taskfile/README.md)                 | [Taskfile.yml](26.global-taskfile/Taskfile.yml)                 |\n| 27.run-interactive-cli-app         | [README](27.run-interactive-cli-app/README.md)         | [Taskfile.yml](27.run-interactive-cli-app/Taskfile.yml)         |\n| 28.remote-taskfile                 | [README](28.remote-taskfile/README.md)                 | [Taskfile.yml](28.remote-taskfile/Taskfile.yml)                 |\n| 29.platform-specific-tasks         | [README](29.platform-specific-tasks/README.md)         | [Taskfile.yml](29.platform-specific-tasks/Taskfile.yml)         |\n| 30.loop-over-dependencies          | [README](30.loop-over-dependencies/README.md)          | [Taskfile.yml](30.loop-over-dependencies/Taskfile.yml)          |\n| 31.v338-cli_silent-cli_verbose     | [README](31.v338-cli_silent-cli_verbose/README.md)     | [Taskfile.yml](31.v338-cli_silent-cli_verbose/Taskfile.yml)     |\n| 32.joinpath                        | [README](32.joinpath/README.md)                        | [Taskfile.yml](32.joinpath/Taskfile.yml)                        |\n| 33.completion-flag                 | [README](33.completion-flag/README.md)                 | [Taskfile.yml](33.completion-flag/Taskfile.yml)                 |\n| 34.v341-taskdir                    | [README](34.v341-taskdir/README.md)                    | [Taskfile.yml](34.v341-taskdir/Taskfile.yml)                    |\n| 35.v341-checksum-timestamp-in-cmds | [README](35.v341-checksum-timestamp-in-cmds/README.md) | [Taskfile.yml](35.v341-checksum-timestamp-in-cmds/Taskfile.yml) |\n| 36.v342-init-option                | [README](36.v342-init-option/README.md)                | [Taskfile.yml](36.v342-init-option/Taskfile.yml)                |\n| 37.taskfile-for-c                  | [README](37.taskfile-for-c/README.md)                  |                                                                 |\n| 38.cli-args-list                   | [README](38.cli-args-list/README.md)                   | [Taskfile.yml](38.cli-args-list/Taskfile.yml)                   |\n| 39.uuid                            | [README](39.uuid/README.md)                            | [Taskfile.yml](39.uuid/Taskfile.yml)                            |\n| 40.randint                         | [README](40.randint/README.md)                         | [Taskfile.yml](40.randint/Taskfile.yml)                         |\n| 41.common_core_utility             | [README](41.randintcommon_core_utility/README.md)      | [Taskfile.yml](41.common_core_utility/Taskfile.yml)             |\n\n## Task (go-task) とは\n\n[Task(go-task)](https://github.com/go-task/task) とは、make のような タスクランナーでありビルドツール。\n\nGoで作成されているので、シングルバイナリとなっており、どの環境であってもインストールが簡単。\n\nWindowsの場合でも scoop で以下のようにするとインストールできる。\n\n```sh\nscoop bucket add extras\nscoop install task\n```\n\nLinuxの場合も、パッケージマネージャからインストール出来るようになっている。\n\n```sh\nbrew install go-task/tap/go-task\n```\n\nまた、Goで作成されているので、Goが入っていれば以下でもインストールできる。\n\n```sh\ngo install github.com/go-task/task/v3/cmd/task@latest\n```\n\nWindowsの場合、デフォルトではmakeが存在しないので、makeを個別で入れる代わりに[Task](https://github.com/go-task/task)を使ってもいいかもしれない。\n\n以下にドキュメントを見ながら覚えていった内容をメモしておくことにする。\n\n---\n\n## 最も大事なルール\n\nmakeには ```Makefile``` のように、taskの場合は ```Taskfile.yml```(```Taskfile.yaml```) というファイルを使う。\n\n```Taskfile.yml``` は、例えば以下のようになる。\n\n```yaml\nversion: '3'\n\nenv:\n  MESSAGE: helloworld\n\ntasks:\n  default:\n    cmds:\n      - echo $MESSAGE\n```\n\n## Taskfile.yml の作り方\n\n```task --init``` とすることで、カレントディレクトリに ```Taskfile.yml``` を初期生成してくれる。\n\n```yaml\n# https://taskfile.dev\n\nversion: '3'\n\nvars:\n  GREETING: Hello, World!\n\ntasks:\n  default:\n    cmds:\n      - echo \"{{.GREETING}}\"\n    silent: true\n```\n\n## 実行方法\n\n対象となる ```Taskfile.yml``` が存在するディレクトリに移動して\n\n```sh\n# デフォルトのタスクが実行される\n$ task\n\n# タスク指定\n$ task xxxx\n```\n\nとするか、ディレクトリは移動せずに\n\n```sh\n$ task -d /path/to/target\n$ task -d /path/to/target task-name\n```\n\nとしても良い。\n\n## 環境変数 (env, dotenv)\n\nタスク単位で環境変数を指定することが出来る。\n\n```yaml\nversion: \"3\"\n\nenv:\n  MYVARGLOBAL: myvar-global\n  MYVARDUP: myvar-global\n\ntasks:\n  default:\n    cmds:\n      - echo $MYVAR\n      - echo $MYVARGLOBAL\n      - echo $MYVARDUP\n    env:\n      MYVAR: myvar-local\n      MYVARDUP: myvar-local\n\n```\n\n```sh\n$ task -d 04.env/\ntask: [default] echo $MYVAR\nmyvar-local\ntask: [default] echo $MYVARGLOBAL\nmyvar-global\ntask: [default] echo $MYVARDUP\nmyvar-local\n```\n\nまた、```.env``` などを指定することも出来る。この場合は ```dotenv:``` を用いる。\n\n### my.env\n\n```yaml\nMYVAR1=value1\nMYVAR2=value2\n```\n\n### my2.env\n\n```yaml\nMYVAR2=value2-2\nMYVAR3=value3\n```\n\n### Taskfile.yml\n\n```yaml\nversion: \"3\"\n\ndotenv: [\"my.env\", \"my2.env\"]\n\ntasks:\n  default:\n    cmds:\n      - echo $MYVAR1\n      - echo $MYVAR2\n      - echo $MYVAR3\n\n```\n\n```sh\n$ task -d 05.dotenv/\ntask: [default] echo $MYVAR1\nvalue1\ntask: [default] echo $MYVAR2\nvalue2\ntask: [default] echo $MYVAR3\nvalue3\n```\n\n## 他のタスクファイルを取込み\n\n他のタスクファイルを取込み（include）することが可能。\n\n取込むには、トップレベルで ```includes:``` を指定する。\n\n存在しない場合でも処理を止めたくない場合は、```optional: true``` を指定する。\n\n### ファイル階層\n\n```sh\n$ tree 06.include/\n06.include/\n├── other\n│   └── Taskfile.yml\n├── other2\n│   └── othertaskfile.yml\n└── Taskfile.yml\n\n2 directories, 3 files\n```\n\n\n### other/Taskfile.yml\n\n```yaml\nversion: \"3\"\n\ntasks:\n  task:\n    cmds:\n      - echo 'task1'\n\n```\n\n### other2/othertaskfile.yml\n\n```yaml\nversion: \"3\"\n\ntasks:\n  task:\n    cmds:\n      - echo 'task2'\n\n```\n\n### Taskfile.yml\n\n```yaml\nversion: \"3\"\n\nincludes:\n  other1: ./other\n  other2: ./other2/othertaskfile.yml\n  other3:\n    taskfile: ./other3/Taskfile.yml\n    optional: true\n\ntasks:\n  default:\n    cmds:\n      - task: other1:task\n      - task: other2:task\n\n```\n\n```sh\n$ task -d 06.include/\ntask: [other1:task] echo 'task1'\ntask1\ntask: [other2:task] echo 'task2'\ntask2\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlights%2Ftry-gotask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevlights%2Ftry-gotask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevlights%2Ftry-gotask/lists"}