いろいろ備忘録日記

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

Task (go-task) メモ-30 (グローバル タスクファイル)(-g, --global)

関連記事

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

概要

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

Taskには グローバルタスクファイル という概念があります。

ユーザのホームディレクトリに配置された タスクファイル がグローバルタスクファイルとなります。

グローバルタスクファイルに定義されているタスクを実行するには

$ task -g task-name

とします。グローバルタスクなので、どの場所からでも実行できるタスクファイルとなります。

サンプル

以下のようなタスクファイルを、まず自分の作業ディレクトリに作ります。

# https://taskfile.dev

version: '3'

tasks:
  default:
    cmds:
      - echo "PWD=$(pwd)"
      - echo "USER_WORKING_DIR={{.USER_WORKING_DIR}}"
      - echo "HOME_DIR={{.HOME}}"
    silent: true
  to_global_taskfile:
    cmds:
      - cp ./Taskfile.yml {{.HOME}}
      - ls -l "{{.HOME}}/Taskfile.yml"
  rm_global_taskfile:
    dir: "{{.HOME}}"
    cmds:
      - rm Taskfile.yml
      - ls -l Taskfile.yml
    ignore_error: true

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

$ task -d 26.global-taskfile/
PWD=/workspace/try-gotask/26.global-taskfile
USER_WORKING_DIR=/workspace/try-gotask
HOME_DIR=/home/gitpod

次に、上のタスクファイルに定義されている to_global_taskfile タスクを実行してホームディレクトリに配置します。

$ task -d 26.global-taskfile/ to_global_taskfile
task: [to_global_taskfile] cp ./Taskfile.yml /home/gitpod
task: [to_global_taskfile] ls -l "/home/gitpod/Taskfile.yml"
-rw-r--r-- 1 gitpod gitpod 304 Sep 24 13:45 /home/gitpod/Taskfile.yml

これで、同じタスクファイルがホームディレクトリにコピーされて、グローバルタスクファイルになりました。

グローバルタスクとして実行すると以下のようになります。

$ task -g
PWD=/home/gitpod
USER_WORKING_DIR=/workspace/try-gotask
HOME_DIR=/home/gitpod

PWDの出力は変わりましたが、 {{.USER_WORKING_DIR}} の場所は変わっていません。

グローバルタスクを作成する際に「現在実際いるディレクトリ」の情報を利用することは多いので、これは便利です。

今回のサンプルで利用したタスクファイルはもういらないので削除。

$ task -g rm_global_taskfile
task: [rm_global_taskfile] rm Taskfile.yml
task: [rm_global_taskfile] ls -l Taskfile.yml
ls: cannot access 'Taskfile.yml': No such file or directory

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


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

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