authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-09-05 00:18:54-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-05 00:18:54-07:00
logda1bebbb11701b58ebdde5ee019f3aeef3d42b27
treeb454af0efdf4c49d05bb6a22aa9094ce301042d1
parentc6410d37d7ff1bdb65b38f0e9c30da392a4de804
signature Signed by PGP key B5690EEEBB952194

refactor(shared): remove retired PATH capture parser (#9991)


2 files changed, 0 insertions(+), 37 deletions(-)

packages/shared/src/shell.test.ts-23
......@@ -8,7 +8,6 @@ import * as TestClock from "effect/testing/TestClock";
88import { describe, expect, it, vi } from "vite-plus/test";
99
1010import {
11 extractPathFromShellOutput,
1211 CommandAvailability,
1312 CommandResolutionCache,
1413 type CommandAvailabilityChecker,
......@@ -39,28 +38,6 @@ const withWindowsEnvironmentMocks = <A, E, R>(
3938 Effect.provideService(CommandAvailability, commandAvailable),
4039 );
4140
42describe("extractPathFromShellOutput", () => {
43 it("extracts the path between capture markers", () => {
44 expect(
45 extractPathFromShellOutput(
46 "__T3CODE_PATH_START__\n/opt/homebrew/bin:/usr/bin\n__T3CODE_PATH_END__\n",
47 ),
48 ).toBe("/opt/homebrew/bin:/usr/bin");
49 });
50
51 it("ignores shell startup noise around the capture markers", () => {
52 expect(
53 extractPathFromShellOutput(
54 "Welcome to fish\n__T3CODE_PATH_START__\n/opt/homebrew/bin:/usr/bin\n__T3CODE_PATH_END__\nBye\n",
55 ),
56 ).toBe("/opt/homebrew/bin:/usr/bin");
57 });
58
59 it("returns null when the markers are missing", () => {
60 expect(extractPathFromShellOutput("/opt/homebrew/bin /usr/bin")).toBeNull();
61 });
62});
63
6441describe("readPathFromLoginShell", () => {
6542 it("uses a shell-agnostic printenv PATH probe", () => {
6643 const execFile = vi.fn<
packages/shared/src/shell.ts-14
......@@ -12,8 +12,6 @@ import * as Path from "effect/Path";
1212import { HostProcessEnvironment, HostProcessPlatform } from "./hostProcess.ts";
1313import * as Context from "effect/Context";
1414
15const PATH_CAPTURE_START = "__T3CODE_PATH_START__";
16const PATH_CAPTURE_END = "__T3CODE_PATH_END__";
1715const SHELL_ENV_NAME_PATTERN = /^[A-Z0-9_]+$/;
1816const WINDOWS_PATH_DELIMITER = ";";
1917const POSIX_PATH_DELIMITER = ":";
......@@ -179,18 +177,6 @@ export function listLoginShellCandidates(
179177 return candidates;
180178}
181179
182export function extractPathFromShellOutput(output: string): string | null {
183 const startIndex = output.indexOf(PATH_CAPTURE_START);
184 if (startIndex === -1) return null;
185
186 const valueStartIndex = startIndex + PATH_CAPTURE_START.length;
187 const endIndex = output.indexOf(PATH_CAPTURE_END, valueStartIndex);
188 if (endIndex === -1) return null;
189
190 const pathValue = output.slice(valueStartIndex, endIndex).trim();
191 return pathValue.length > 0 ? pathValue : null;
192}
193
194180export function readPathFromLoginShell(
195181 shell: string,
196182 execFile: ExecFileSyncLike = NodeChildProcess.execFileSync,