@@ -3,8 +3,9 @@
|
3 | 3 | import { readFile, writeFile } from "node:fs/promises"; |
4 | 4 | import path from "node:path"; |
5 | 5 | |
| 6 | +const knownArgKeys = new Set(["report", "output", "lane", "reporturl", "artifacturl"]); |
6 | 7 | const rawArgs = process.argv.slice(2); |
7 | | -if (rawArgs.includes("--help") || rawArgs.includes("-h")) { |
| 8 | +if (shouldPrintHelp(rawArgs)) { |
8 | 9 | usage("", 0); |
9 | 10 | } |
10 | 11 | |
@@ -245,18 +246,17 @@ function value(input) {
|
245 | 246 | |
246 | 247 | function parseArgs(argv) { |
247 | 248 | const parsed = {}; |
248 | | -const knownKeys = new Set(["report", "output", "lane", "reporturl", "artifacturl"]); |
249 | 249 | for (let index = 0; index < argv.length; index += 1) { |
250 | 250 | const arg = argv[index]; |
251 | 251 | if (!arg.startsWith("--")) { |
252 | 252 | usage(`unexpected argument: ${arg}`); |
253 | 253 | } |
254 | 254 | const key = arg.slice(2).replaceAll("-", ""); |
255 | | -if (!knownKeys.has(key)) { |
| 255 | +if (!knownArgKeys.has(key)) { |
256 | 256 | usage(`unknown argument: ${arg}`); |
257 | 257 | } |
258 | 258 | const valueLocal = argv[index + 1]; |
259 | | -if (!valueLocal || valueLocal.startsWith("--")) { |
| 259 | +if (!valueLocal || valueLocal.startsWith("-")) { |
260 | 260 | usage(`${arg} requires a value`); |
261 | 261 | } |
262 | 262 | parsed[key] = valueLocal; |
@@ -271,6 +271,28 @@ function parseArgs(argv) {
|
271 | 271 | }; |
272 | 272 | } |
273 | 273 | |
| 274 | +function shouldPrintHelp(argv) { |
| 275 | +for (let index = 0; index < argv.length; index += 1) { |
| 276 | +const arg = argv[index]; |
| 277 | +if (arg === "--help" || arg === "-h") { |
| 278 | +return true; |
| 279 | +} |
| 280 | +if (!arg.startsWith("--")) { |
| 281 | +return false; |
| 282 | +} |
| 283 | +const key = arg.slice(2).replaceAll("-", ""); |
| 284 | +if (!knownArgKeys.has(key)) { |
| 285 | +return false; |
| 286 | +} |
| 287 | +const optionValue = argv[index + 1]; |
| 288 | +if (!optionValue || optionValue.startsWith("-")) { |
| 289 | +return false; |
| 290 | +} |
| 291 | +index += 1; |
| 292 | +} |
| 293 | +return false; |
| 294 | +} |
| 295 | + |
274 | 296 | function usage(message, status = 2) { |
275 | 297 | const text = |
276 | 298 | "usage: node scripts/kova-ci-summary.mjs --report <report.json> [--output <summary.md>] [--lane <name>] [--report-url <url>] [--artifact-url <url>]\n"; |
|