
























@@ -644,6 +644,7 @@ function analyzeWindowsShellCommand(params: {
644644command: string;
645645cwd?: string;
646646env?: NodeJS.ProcessEnv;
647+platform?: string | null;
647648}): ExecCommandAnalysis {
648649const effective = stripWindowsShellWrapper(params.command.trim());
649650const unsupported = findWindowsUnsupportedToken(effective);
@@ -664,7 +665,12 @@ function analyzeWindowsShellCommand(params: {
664665{
665666raw: params.command,
666667 argv,
667-resolution: resolveCommandResolutionFromArgv(argv, params.cwd, params.env),
668+resolution: resolveCommandResolutionFromArgv(
669+argv,
670+params.cwd,
671+params.env,
672+(params.platform ?? undefined) as NodeJS.Platform | undefined,
673+),
668674},
669675],
670676};
@@ -679,6 +685,7 @@ function parseSegmentsFromParts(
679685parts: string[],
680686cwd?: string,
681687env?: NodeJS.ProcessEnv,
688+platform?: string | null,
682689): ExecCommandSegment[] | null {
683690const segments: ExecCommandSegment[] = [];
684691for (const raw of parts) {
@@ -689,7 +696,12 @@ function parseSegmentsFromParts(
689696segments.push({
690697 raw,
691698 argv,
692-resolution: resolveCommandResolutionFromArgv(argv, cwd, env),
699+resolution: resolveCommandResolutionFromArgv(
700+argv,
701+cwd,
702+env,
703+(platform ?? undefined) as NodeJS.Platform | undefined,
704+),
693705});
694706}
695707return segments;
@@ -1206,7 +1218,12 @@ export function analyzeShellCommand(params: {
12061218if (!pipelineSplit.ok) {
12071219return { ok: false, reason: pipelineSplit.reason, segments: [] };
12081220}
1209-const segments = parseSegmentsFromParts(pipelineSplit.segments, params.cwd, params.env);
1221+const segments = parseSegmentsFromParts(
1222+pipelineSplit.segments,
1223+params.cwd,
1224+params.env,
1225+params.platform,
1226+);
12101227if (!segments) {
12111228return { ok: false, reason: "unable to parse shell segment", segments: [] };
12121229}
@@ -1222,7 +1239,7 @@ export function analyzeShellCommand(params: {
12221239if (!split.ok) {
12231240return { ok: false, reason: split.reason, segments: [] };
12241241}
1225-const segments = parseSegmentsFromParts(split.segments, params.cwd, params.env);
1242+const segments = parseSegmentsFromParts(split.segments, params.cwd, params.env, params.platform);
12261243if (!segments) {
12271244return { ok: false, reason: "unable to parse shell segment", segments: [] };
12281245}
@@ -1233,6 +1250,7 @@ export function analyzeArgvCommand(params: {
12331250argv: string[];
12341251cwd?: string;
12351252env?: NodeJS.ProcessEnv;
1253+platform?: string | null;
12361254}): ExecCommandAnalysis {
12371255const argv = params.argv.filter((entry) => entry.trim().length > 0);
12381256if (argv.length === 0) {
@@ -1245,7 +1263,12 @@ export function analyzeArgvCommand(params: {
12451263raw: argv.join(" "),
12461264 argv,
12471265sourceArgv: [...params.argv],
1248-resolution: resolveCommandResolutionFromArgv(argv, params.cwd, params.env),
1266+resolution: resolveCommandResolutionFromArgv(
1267+argv,
1268+params.cwd,
1269+params.env,
1270+(params.platform ?? undefined) as NodeJS.Platform | undefined,
1271+),
12491272},
12501273],
12511274};
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。