11 実行時の監査ファイル・セットの作成

他のデータ・セットの現在の状態を検査するなどして、動的に導出されたファイル・セットをルール・パックで監査する必要があるときは、JafLib APIを使用します。

まず、ファイルを指定しないように構成ファイルを設定する必要があります。

{
   "files"   : [],
   "exclude" : [],     // if needed
 
 
   "rulePacks" : {
                       // your rulepack reference
                       // this pack will contain the fileset generating rule
                 }          
}

次に、ファイル・リストを生成するルールを作成する必要があります。このルールは、JAFライフサイクル・フェーズstartauditをリスニングする必要があります。このフェーズは、一般的な監査フェーズの開始直前に発生します。

このルールでは、ruleCtx.utils.jafLibsetFileset()を使用してファイル・セットを設定します。フル・ファイル・パス(相対ではない)を使用する必要があります。

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);
   }
};