Skip to content

Commit

Permalink
Select which adblock data files to generate using cli args
Browse files Browse the repository at this point in the history
  • Loading branch information
tontinton committed Sep 20, 2023
1 parent 9d5f25a commit 68a13ef
Showing 1 changed file with 27 additions and 10 deletions.
37 changes: 27 additions & 10 deletions scripts/generateAdBlockRustDataFiles.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

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

Promise.all([
generateDataFilesForDefaultAdblock(),
generateDataFilesForResourcesComponent(),
generateTestDataFile1(),
generateTestDataFile2(),
generateTestDataFile3(),
generateTestDataFile4(),
generateTestDataFile5(),
generateDataFilesForAllRegions(),
]).then(() => {
const allFiles = ['default', 'resources', 'test', 'regional']

commander
.option('-f, --files [files...]', `select which data files to generate (${allFiles})`, allFiles.join(' '))
.parse(process.argv)

const generatorsMap = new Map([
['default', [generateDataFilesForDefaultAdblock]],
['resources', [generateDataFilesForResourcesComponent]],
['test', [
generateTestDataFile1,
generateTestDataFile2,
generateTestDataFile3,
generateTestDataFile4,
generateTestDataFile5,
]],
['regional', [generateDataFilesForAllRegions]],
]);

const promises = [];
new Set(commander.files.trim().split(' ')).forEach(file => {
const generatorFunctions = generatorsMap.get(file) ?? []
promises.push(...generatorFunctions.map(f => f()))
})

Promise.all(promises).then(() => {
console.log('Thank you for updating the data files, don\'t forget to upload them too!')
})
.catch((e) => {
Expand Down

0 comments on commit 68a13ef

Please sign in to comment.