mise.tomlではなく別のファイル名で設定を管理したい
【mise】mise.tomlの書き方の基本
で紹介したとおり、miseは既定でmise.tomlという設定ファイルを読み書きする。プロジェクトの命名規則に合わせてドットファイル形式にしたい、既存の設定ファイル名と統一したいなど、mise.toml以外の名前を使いたい場合がある。環境変数MISE_DEFAULT_CONFIG_FILENAMEを設定すると、mise useやmise setが新規に設定ファイルを作成する際のファイル名を変更できる。
MISE_DEFAULT_CONFIG_FILENAMEの基本
設定ファイルがまだ存在しないプロジェクトでMISE_DEFAULT_CONFIG_FILENAMEを指定し、mise useでツールを追加する。
$ export MISE_DEFAULT_CONFIG_FILENAME=".mise-config.toml"
$ mise use jq@1.7
mise.tomlではなく、指定したファイル名で設定ファイルが作成される。
$ ls -a
.mise-config.toml
$ cat .mise-config.toml
[tools]
jq = "1.7"
mise setで環境変数を設定した場合も同様である。
$ mise set MY_VAR=hello
$ cat .mise-config.toml
[tools]
jq = "1.7"
[env]
MY_VAR = "hello"
既存のmise.tomlがある場合は変更されない
MISE_DEFAULT_CONFIG_FILENAMEが効くのは、設定ファイルを新規作成するタイミングだけである。すでにmise.tomlが存在するプロジェクトでは、MISE_DEFAULT_CONFIG_FILENAMEを設定しても引き続きmise.tomlが読み書きされる。
$ cat mise.toml
[env]
FROM_MISE_TOML = "yes"
$ export MISE_DEFAULT_CONFIG_FILENAME=".mise-config.toml"
$ mise set ANOTHER_VAR=world
$ cat mise.toml
[env]
FROM_MISE_TOML = "yes"
ANOTHER_VAR = "world"
.mise-config.tomlは作成されず、既存のmise.tomlに追記される。プロジェクトの途中から設定ファイル名を変える場合は、MISE_DEFAULT_CONFIG_FILENAMEを設定するだけでなく、既存のmise.tomlを手動でリネームする必要がある。
シェルの設定に登録する
シェルの起動ファイル(.bashrcや.zshrcなど)でMISE_DEFAULT_CONFIG_FILENAMEをエクスポートしておくと、新規作成するプロジェクトすべてで同じ設定ファイル名が使われる。
export MISE_DEFAULT_CONFIG_FILENAME=".mise-config.toml"
チームで設定ファイル名の運用を統一したい場合は、個々のシェル設定に頼らず、リポジトリのセットアップ手順やCIの設定にも同じ環境変数を明示しておくと、メンバーやCI環境ごとの差異を防げる。
