

























@@ -155,60 +155,61 @@ Options:
155155}
156156157157export function parseArgs(argv: string[]): MacosOptions {
158+const args = stripLeadingPackageManagerSeparator(argv);
158159const options = defaultOptions();
159- parseArgv: for (let i = 0; i < argv.length; i++) {
160-const arg = argv[i];
160+ parseArgv: for (let i = 0; i < args.length; i++) {
161+const arg = args[i];
161162switch (arg) {
162163case "--":
163164break parseArgv;
164165case "--vm":
165-options.vmName = ensureValue(argv, i, arg);
166+options.vmName = ensureValue(args, i, arg);
166167i++;
167168break;
168169case "--snapshot-hint":
169-options.snapshotHint = ensureValue(argv, i, arg);
170+options.snapshotHint = ensureValue(args, i, arg);
170171i++;
171172break;
172173case "--mode":
173-options.mode = parseMode(ensureValue(argv, i, arg));
174+options.mode = parseMode(ensureValue(args, i, arg));
174175i++;
175176break;
176177case "--provider":
177-options.provider = parseProvider(ensureValue(argv, i, arg));
178+options.provider = parseProvider(ensureValue(args, i, arg));
178179i++;
179180break;
180181case "--model":
181-options.modelId = ensureValue(argv, i, arg);
182+options.modelId = ensureValue(args, i, arg);
182183i++;
183184break;
184185case "--api-key-env":
185186case "--openai-api-key-env":
186-options.apiKeyEnv = ensureValue(argv, i, arg);
187+options.apiKeyEnv = ensureValue(args, i, arg);
187188i++;
188189break;
189190case "--install-url":
190-options.installUrl = ensureValue(argv, i, arg);
191+options.installUrl = ensureValue(args, i, arg);
191192i++;
192193break;
193194case "--host-port":
194-options.hostPort = parsePositiveInt(ensureValue(argv, i, arg), arg);
195+options.hostPort = parsePositiveInt(ensureValue(args, i, arg), arg);
195196options.hostPortExplicit = true;
196197i++;
197198break;
198199case "--host-ip":
199-options.hostIp = ensureValue(argv, i, arg);
200+options.hostIp = ensureValue(args, i, arg);
200201i++;
201202break;
202203case "--latest-version":
203-options.latestVersion = ensureValue(argv, i, arg);
204+options.latestVersion = ensureValue(args, i, arg);
204205i++;
205206break;
206207case "--install-version":
207-options.installVersion = ensureValue(argv, i, arg);
208+options.installVersion = ensureValue(args, i, arg);
208209i++;
209210break;
210211case "--target-package-spec":
211-options.targetPackageSpec = ensureValue(argv, i, arg);
212+options.targetPackageSpec = ensureValue(args, i, arg);
212213i++;
213214break;
214215case "--skip-latest-ref-check":
@@ -218,15 +219,15 @@ export function parseArgs(argv: string[]): MacosOptions {
218219options.keepServer = true;
219220break;
220221case "--discord-token-env":
221-options.discordTokenEnv = ensureValue(argv, i, arg);
222+options.discordTokenEnv = ensureValue(args, i, arg);
222223i++;
223224break;
224225case "--discord-guild-id":
225-options.discordGuildId = ensureValue(argv, i, arg);
226+options.discordGuildId = ensureValue(args, i, arg);
226227i++;
227228break;
228229case "--discord-channel-id":
229-options.discordChannelId = ensureValue(argv, i, arg);
230+options.discordChannelId = ensureValue(args, i, arg);
230231i++;
231232break;
232233case "--json":
@@ -243,6 +244,10 @@ export function parseArgs(argv: string[]): MacosOptions {
243244return options;
244245}
245246247+function stripLeadingPackageManagerSeparator(argv: string[]): string[] {
248+return argv[0] === "--" ? argv.slice(1) : argv;
249+}
250+246251class MacosSmoke {
247252private agentTimeoutSeconds: number;
248253private auth: ProviderAuth;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。