direnv.toml - direnvの構成ファイル
構成ファイルはTOML形式で、direnvの様々な構成オプションを指定できます。
ファイルは$XDG_CONFIG_HOME/direnv/direnv.toml
(普通は~/.config/direnv/direnv.toml)から読み込まれます。
バージョンv2.21.0以前については、direnv.tomlではなくconfig.tomlを使ってください。
構成ファイルの構文について、詳しくはTOMLのGitHubリポジトリをご参照ください。
構成は節で指定され、それぞれの節には最上位のテーブルがあります。 これらのテーブルはキーバリューの対からなり、各節で指定されます。
例は次の通り。
[節]
キー = "バリュー"
以下の節に対応しています。
bash_path
これにより、bashの場所をハードコードできます。 PATHが改変されたときにdirenvの実行が失敗することを避ける上で、これを設定すると便利かもしれません。
disable_stdin
true
に設定したとき、.envrc
の評価時に標準入力が無効になります(/dev/nullにリダイレクトされます)。
load_dotenv
direnv >= 2.31.0が必要です。
true
に設定すると、.env
ファイルを探し、.envrc
ファイルの最上位で読み込みます。
.envrc
と.env
のファイルが両方とも存在するとき、.envrc
が必ず最初に選ばれます。
strict_env
true
に設定しているとき、.envrc
はset -euo pipefail
で読み込まれます。
このオプションは将来の既定となります。
warn_timeout
コマンドの実行が長く掛かり過ぎていることを利用者に警告するまでどれだけ待つか指定します。 既定は「5s」です。
A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as “300ms”, “-1.5h” or “2h45m”. Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h”.
この機能は時間間隔がゼロ以下のとき無効になります。
環境変数DIRENV_WARN_TIMEOUT
が前述の何れかの値に設定されているとき、上書きされます。
hide_env_diff
true
に設定すると、.envrc
を読み込んだときに環境変数の差分を隠します。
既定でfalse
です。
log_format
履歴の形式をdirenvの出力に設定します。 「-」に設定すると通常の履歴が無効になります。
direnv >= 2.36.0が必要です。
log_filter
正規表現を使って、何らかの履歴に絞り込めます。
direnv >= 2.36.0が必要です。
ホワイトリストのディレクティブを指定すると、特定のディレクトリ階層または特定のディレクトリには、「信頼済み」の印が付きます。
一致する.envrc
ファイルは、それが個別に許可されているかどうかに関係なく、direnvにより評価されます。
この機能を使うときはよく注意してください。
そのディレクトリにファイルを書き込める人(VCSリポジトリの共同作業者を含む)が、コンピューター上で任意のコードを実行できるようになる可能性があります。
2種類の許可リストのディレクティブに対応しています。
prefix
文字列の配列を受け付けます。
このリストの文字列のどれかが、.envrc ファイルの絶対パスの前の部分であるとき、そのファイルは暗に許可されます。
内容がどうであれ、またそれまでにdirenv allow
またはdirenv deny
されていようと、関係ありません。
例は次の通り。
[whitelist]
prefix = [ "/home/user/code/project-a", "~/code/project-b" ]
この例では、以下の.envrcファイルが暗に許可されます。
/home/user/code/project-a/.envrc
/home/user/code/project-a/subdir/.envrc
~/code/project-b/.envrc
~/code/project-b/subdir/.envrc
この例では、以下の .envrc ファイルは暗に許可されません(ただしdirenv allow
で明示的に許可できます)。
/home/user/project-c/.envrc
/opt/random/.envrc
exact
文字列の配列を受け付けます。
各文字列はディレクトリ名または.envrc
ファイルへの完全なパスを取り得ます。
ディレクトリ名が渡された場合、それに/.envrc
を後に付けたものが渡されたかのように扱います。
ファイル名を解決した後、各文字列は.envrc
ファイルの絶対パスと完全一致するかどうか検査されます。
完全に一致する場合、その.envrc
ファイルは暗に許可されます。
内容がどうであれ、またそれまでにdirenv allow
またはdirenv deny
をしていようと無関係です。
例は次の通り。
[whitelist]
exact = [ "/home/user/project-a/.envrc", "~/project-b/subdir-a" ]
この例では、以下の .envrc ファイルは暗に許可されます。 それ以外は許可されません。
/home/user/code/project-a/.envrc
~/project-b/subdir-a
この例では、以下の .envrc ファイルは暗に許可されません(ただしdirenv allow
で明示的に許可できます)。
/home/user/code/project-b/subproject-c/.envrc
~/code/.envrc
MIT licence - Copyright (C) 2019 @zimbatm and contributors
direnv(1), direnv-stdlib(1)