Next: ソースレジストリのキャッシュ, Previous: シェル向けの設定の構文(ソースレジストリ), Up: ASDFがシステムを探す場所を設定する [Contents][Index]
念のため説明しておくと、与えられたシステム名を持つシステムを探すとき、ディレクティブは順番に処理されていきます。
ディレクトリ(:directory
)を探索する場合、システムが見つかれば探索は成功であり、見つからなければ次の探索に進みます。
ツリー(:tree
)を探索する場合、システムがただ1つ見つかれば探索は成功です。複数のシステムが見つかった時の動作はバージョンによって異なりますが、ASDF 3.2.1以降では、パス名の(ノーマライズされた)ディレクトリコンポーネント40の長さを比較し、短いほうが探索結果として採用されるようになりました。長さが同じ場合は、パス名のunix-namestring
をstring<
で比較して小さいほうが採用されます。それ以前のASDFでは最初に見つかったシステムを返していましたが、どのシステムが返るかは処理系によって異なり、上の仕様のようにstring<
に関して小さいパス名が返るかどうかも不確定でした。また、XCVB41ではエラーが通知されていました。システムが見つからなかった場合は次の探索に進みます。
:exclude
、:also-exclude
ディレクティブには、ツリーを探索するときに除外するサブディレクトリ名を指定します。一般的には、バージョン管理システムのデータベースディレクトリ(.git、_darcsなど)は除外されるでしょう。なお、除外の指定は継承された設定には伝搬しません。すべての設定は、デフォルトではasdf::*default-source-registry-exclusions*
に登録されている除外パターンを採用します。
:include
ディレクティブでインクルードされた設定については、探索は再帰的に適用されます。
また、:inherit-configuration
ディレクティブで継承された設定についても、探索は再帰的に適用されます。