Skip to content

Commit b7216b4

Browse files
committed
scripts: handle double -
1 parent 85bff2c commit b7216b4

5 files changed

+57
-22
lines changed

scripts/build_demo.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ if (import.meta.url === pathToFileURL(process.argv[1]).href) {
124124
case "--include-wasm":
125125
includeWasmParser = true;
126126
break;
127+
case "--":
128+
argOffset = args.length;
129+
break;
127130
default: {
128131
console.error('ERROR: unknown option: "' + currentArg + '"\n');
129132
displayHelp();

scripts/launch_static_server.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ if (import.meta.url === pathToFileURL(process.argv[1]).href) {
151151
}
152152
break;
153153

154+
case "--":
155+
argOffset = args.length;
156+
break;
157+
154158
default: {
155159
console.error('ERROR: unknown option: "' + currentArg + '"\n');
156160
displayHelp();

scripts/run_bundler.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@ if (import.meta.url === pathToFileURL(process.argv[1]).href) {
215215
}
216216
break;
217217

218+
case "--":
219+
argOffset = args.length;
220+
break;
221+
218222
default: {
219223
console.error('ERROR: unknown option: "' + currentArg + '"\n');
220224
displayHelp();

scripts/start_demo_web_server.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,11 @@ if (import.meta.url === pathToFileURL(process.argv[1]).href) {
121121
case "--include-wasm":
122122
includeWasmParser = true;
123123
break;
124+
125+
case "--":
126+
argOffset = args.length;
127+
break;
128+
124129
default: {
125130
console.error('ERROR: unknown option: "' + currentArg + '"\n');
126131
displayHelp();

scripts/update_changelog.mjs

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,41 +43,60 @@ The resulting file will be the one commited.
4343

4444
// If true, this script is called directly
4545
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
46-
const options = process.argv.slice(2);
47-
48-
let version;
4946
let isDevRelease = false;
50-
for (const option of options) {
51-
if (option.startsWith("-")) {
52-
if (option === "-d" || option === "-dev") {
53-
isDevRelease = true;
54-
} else if (option === "-h" || option === "--help") {
47+
let hasFinishedParsingOptions = false;
48+
let optionOffset = 0;
49+
50+
const options = process.argv.slice(2);
51+
for (
52+
optionOffset = 0;
53+
optionOffset < options.length && !hasFinishedParsingOptions;
54+
optionOffset++
55+
) {
56+
const currentOption = options[optionOffset];
57+
switch (currentOption) {
58+
case "-h":
59+
case "--help":
5560
displayHelp();
5661
process.exit(0);
57-
} else {
58-
console.error("ERROR: Unrecognized option:", option);
59-
console.error(
60-
"More details on usage by calling node update_changelog.mjs --help",
61-
);
62-
process.exit(1);
62+
break;
63+
64+
case "-d":
65+
case "--dev":
66+
isDevRelease = true;
67+
break;
68+
69+
case "--":
70+
hasFinishedParsingOptions = true;
71+
break;
72+
73+
default: {
74+
if (currentOption.startsWith("-")) {
75+
console.error('ERROR: unknown option: "' + currentOption + '"\n');
76+
displayHelp();
77+
process.exit(1);
78+
} else {
79+
hasFinishedParsingOptions = true;
80+
optionOffset--;
81+
break;
82+
}
6383
}
64-
} else if (version === undefined) {
65-
version = option;
66-
} else {
67-
console.error("ERROR: Unrecognized option:", option);
68-
console.error("More details on usage by calling node update_changelog.mjs --help");
69-
process.exit(1);
7084
}
7185
}
7286

73-
if (version === undefined) {
87+
if (optionOffset === options.length) {
7488
console.error("ERROR: Missing version argument.");
7589
console.error("More details on usage by calling node update_changelog.mjs --help");
7690
process.exit(1);
91+
} else if (options.length - optionOffset > 1) {
92+
console.error("ERROR: Too many arguments");
93+
console.error("More details on usage by calling node update_changelog.mjs --help");
94+
process.exit(1);
7795
}
7896

97+
const version = options[optionOffset];
98+
7999
try {
80-
const version = process.argv[2];
81100
updateChangelog({ version, isDevRelease }).catch((err) => {
82101
console.error("ERROR:", err);
83102
process.exit(1);

0 commit comments

Comments
 (0)