diff --git a/scripts/create-matrix.js b/scripts/create-matrix.js index 75fabcbf..fa4e989e 100644 --- a/scripts/create-matrix.js +++ b/scripts/create-matrix.js @@ -1,27 +1,37 @@ +const { Command } = require('commander') const file = require('./file') const parser = require('./parser') -file - .list('sites/*.channels.xml', [ - 'sites/andorradifusio.ad.channels.xml', - 'sites/arianaafgtv.com.channels.xml' - ]) - .then(files => { - const matrix = { - guide: [] - } +const program = new Command() +program + .option('--include ', 'List of files to include', parseList) + .option('--exclude ', 'List of files to exclude', parseList) + .parse(process.argv) - files.forEach(filename => { - const channelsFile = file.read(filename) - const parsed = parser.parseChannels(channelsFile) - parsed.groups.forEach(group => { - matrix.guide.push({ - site: parsed.site, - country: group.country.toLowerCase() - }) +const options = program.opts() + +file.list('sites/*.channels.xml', options.include, options.exclude).then(files => { + const matrix = { + guide: [] + } + + files.forEach(filename => { + const channelsFile = file.read(filename) + const parsed = parser.parseChannels(channelsFile) + parsed.groups.forEach(group => { + matrix.guide.push({ + site: parsed.site, + country: group.country.toLowerCase() }) }) - - const output = `::set-output name=matrix::${JSON.stringify(matrix)}` - console.log(output) }) + + const output = `::set-output name=matrix::${JSON.stringify(matrix)}` + console.log(output) +}) + +function parseList(str) { + if (!str) return [] + + return str.split(',') +}