direnv

DIRENV.TOML 1 “2019” direnv 「利用者便覧」

名称

direnv.toml - direnvの構成ファイル

解説

構成ファイルはTOML形式で、direnvの様々な構成オプションを指定できます。 ファイルは$XDG_CONFIG_HOME/direnv/direnv.toml(普通は~/.config/direnv/direnv.toml)から読み込まれます。

バージョンv2.21.0以前については、direnv.tomlではなくconfig.tomlを使ってください。

形式

構成ファイルの構文について、詳しくはTOMLのGitHubリポジトリをご参照ください。

構成

構成は節で指定され、それぞれの節には最上位のテーブルがあります。 これらのテーブルはキーバリューの対からなり、各節で指定されます。

例は次の通り。

[節]
キー = "バリュー"

以下の節に対応しています。

[global]

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に設定しているとき、.envrcset -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が必要です。

[whitelist]

ホワイトリストのディレクティブを指定すると、特定のディレクトリ階層または特定のディレクトリには、「信頼済み」の印が付きます。 一致する.envrcファイルは、それが個別に許可されているかどうかに関係なく、direnvにより評価されます。 この機能を使うときはよく注意してください。 そのディレクトリにファイルを書き込める人(VCSリポジトリの共同作業者を含む)が、コンピューター上で任意のコードを実行できるようになる可能性があります。

2種類の許可リストのディレクティブに対応しています。

prefix

文字列の配列を受け付けます。 このリストの文字列のどれかが、.envrc ファイルの絶対パスの前の部分であるとき、そのファイルは暗に許可されます。 内容がどうであれ、またそれまでにdirenv allowまたはdirenv denyされていようと、関係ありません。

例は次の通り。

[whitelist]
prefix = [ "/home/user/code/project-a", "~/code/project-b" ]

この例では、以下の.envrcファイルが暗に許可されます。

この例では、以下の .envrc ファイルは暗に許可されません(ただしdirenv allowで明示的に許可できます)。

exact

文字列の配列を受け付けます。 各文字列はディレクトリ名または.envrcファイルへの完全なパスを取り得ます。 ディレクトリ名が渡された場合、それに/.envrcを後に付けたものが渡されたかのように扱います。 ファイル名を解決した後、各文字列は.envrcファイルの絶対パスと完全一致するかどうか検査されます。 完全に一致する場合、その.envrcファイルは暗に許可されます。 内容がどうであれ、またそれまでにdirenv allowまたはdirenv denyをしていようと無関係です。

例は次の通り。

[whitelist]
exact = [ "/home/user/project-a/.envrc", "~/project-b/subdir-a" ]

この例では、以下の .envrc ファイルは暗に許可されます。 それ以外は許可されません。

この例では、以下の .envrc ファイルは暗に許可されません(ただしdirenv allowで明示的に許可できます)。

著作情報

MIT licence - Copyright (C) 2019 @zimbatm and contributors

こちらも参照

direnv(1), direnv-stdlib(1)