Skip to content

Commit 68a13ef

Browse files
committed
Select which adblock data files to generate using cli args
1 parent 9d5f25a commit 68a13ef

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

scripts/generateAdBlockRustDataFiles.js

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import { Engine, FilterFormat, FilterSet, RuleTypes } from 'adblock-rs'
66
import { generateResourcesFile, getListCatalog, getDefaultLists, getRegionalLists, resourcesComponentId, regionalCatalogComponentId } from '../lib/adBlockRustUtils.js'
7+
import commander from 'commander'
78
import util from '../lib/util.js'
89
import path from 'path'
910
import fs from 'fs'
@@ -153,16 +154,32 @@ const generateTestDataFile4 =
153154
const generateTestDataFile5 =
154155
generateDataFileFromLists.bind(null, [{ format: FilterFormat.STANDARD, data: 'ad_fr.png' }], 'rs-9852EFC4-99E4-4F2D-A915-9C3196C7A1DE.dat', 'test-data')
155156

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(() => {
166183
console.log('Thank you for updating the data files, don\'t forget to upload them too!')
167184
})
168185
.catch((e) => {

0 commit comments

Comments
 (0)