diff --git a/plugins/ultraplan-local/examples/02-real-cli/tally.mjs b/plugins/ultraplan-local/examples/02-real-cli/tally.mjs index f63719a..8192829 100755 --- a/plugins/ultraplan-local/examples/02-real-cli/tally.mjs +++ b/plugins/ultraplan-local/examples/02-real-cli/tally.mjs @@ -70,13 +70,19 @@ function main() { process.stderr.write(`tally: ${what}: ${file}\n`); process.exit(1); } - const count = flags.lines - ? countLines(text, pattern, flags.ignoreCase) - : countOccurrences(text, pattern, flags.ignoreCase); + let count; + if (flags.regex) { + const re = compileRegex(pattern); + count = (text.match(re) || []).length; + } else if (flags.lines) { + count = countLines(text, pattern, flags.ignoreCase); + } else { + count = countOccurrences(text, pattern, flags.ignoreCase); + } if (flags.json) { process.stdout.write(JSON.stringify({ pattern, file, count, - flags: { json: flags.json, ignoreCase: flags.ignoreCase, lines: flags.lines }, + flags: { json: flags.json, ignoreCase: flags.ignoreCase, lines: flags.lines, regex: flags.regex }, }) + '\n'); } else { process.stdout.write(count + '\n');