11 実行時の監査ファイル・セットの作成
他のデータ・セットの現在の状態を検査するなどして、動的に導出されたファイル・セットをルール・パックで監査する必要があるときは、JafLib APIを使用します。
まず、ファイルを指定しないように構成ファイルを設定する必要があります。
{
"files" : [],
"exclude" : [], // if needed
"rulePacks" : {
// your rulepack reference
// this pack will contain the fileset generating rule
}
}
次に、ファイル・リストを生成するルールを作成する必要があります。このルールは、JAFライフサイクル・フェーズstartauditをリスニングする必要があります。このフェーズは、一般的な監査フェーズの開始直前に発生します。
このルールでは、ruleCtx.utils.jafLib
のsetFileset()
を使用してファイル・セットを設定します。フル・ファイル・パス(相対ではない)を使用する必要があります。
let verboseMode;
function register(regCtx)
{
// optional feedback
verboseMode = regCtx.sysOpts.verboseMode;
return { "startaudit" : _fn };
};
function _fn(ruleCtx)
{
// create an array of full filepaths
let fileset = _computeFileSet(ruleCtx);
let exclude = _computeExcludeSet(ruleCtx);
if (fileset.length)
{
if (verboseMode) { console.log(`Rule 'my-fileset-generator': injecting ${fileset.length} files into configuration 'files'`); }
// param exclude may be omitted
ruleCtx.utils.jafLib.setFileset(ruleCtx, fileset, exclude);
}
};