|
4 | 4 |
|
5 | 5 | import { Engine, FilterFormat, FilterSet, RuleTypes } from 'adblock-rs' |
6 | 6 | import { generateResourcesFile, getListCatalog, getDefaultLists, getRegionalLists, resourcesComponentId, regionalCatalogComponentId } from '../lib/adBlockRustUtils.js' |
| 7 | +import commander from 'commander' |
7 | 8 | import util from '../lib/util.js' |
8 | 9 | import path from 'path' |
9 | 10 | import fs from 'fs' |
@@ -153,16 +154,32 @@ const generateTestDataFile4 = |
153 | 154 | const generateTestDataFile5 = |
154 | 155 | generateDataFileFromLists.bind(null, [{ format: FilterFormat.STANDARD, data: 'ad_fr.png' }], 'rs-9852EFC4-99E4-4F2D-A915-9C3196C7A1DE.dat', 'test-data') |
155 | 156 |
|
156 | | -Promise.all([ |
157 | | - generateDataFilesForDefaultAdblock(), |
158 | | - generateDataFilesForResourcesComponent(), |
159 | | - generateTestDataFile1(), |
160 | | - generateTestDataFile2(), |
161 | | - generateTestDataFile3(), |
162 | | - generateTestDataFile4(), |
163 | | - generateTestDataFile5(), |
164 | | - generateDataFilesForAllRegions(), |
165 | | - ]).then(() => { |
| 157 | +const allFiles = ['default', 'resources', 'test', 'regional'] |
| 158 | + |
| 159 | +commander |
| 160 | + .option('-f, --files [files...]', `select which data files to generate (${allFiles})`, allFiles.join(' ')) |
| 161 | + .parse(process.argv) |
| 162 | + |
| 163 | +const generatorsMap = new Map([ |
| 164 | + ['default', [generateDataFilesForDefaultAdblock]], |
| 165 | + ['resources', [generateDataFilesForResourcesComponent]], |
| 166 | + ['test', [ |
| 167 | + generateTestDataFile1, |
| 168 | + generateTestDataFile2, |
| 169 | + generateTestDataFile3, |
| 170 | + generateTestDataFile4, |
| 171 | + generateTestDataFile5, |
| 172 | + ]], |
| 173 | + ['regional', [generateDataFilesForAllRegions]], |
| 174 | +]); |
| 175 | + |
| 176 | +const promises = []; |
| 177 | +new Set(commander.files.trim().split(' ')).forEach(file => { |
| 178 | + const generatorFunctions = generatorsMap.get(file) ?? [] |
| 179 | + promises.push(...generatorFunctions.map(f => f())) |
| 180 | +}) |
| 181 | + |
| 182 | +Promise.all(promises).then(() => { |
166 | 183 | console.log('Thank you for updating the data files, don\'t forget to upload them too!') |
167 | 184 | }) |
168 | 185 | .catch((e) => { |
|
0 commit comments