Files
Netcatty/components/terminalLayer/commandCwdProbe.ts
T
2026-06-26 10:51:59 +08:00

29 lines
860 B
TypeScript

import { resolveHostFollowTerminalCwd, resolveSftpFollowTerminalCwdTargetHost } from "../sftp/sftpFollowTerminalCwd";
type FollowTerminalCwdHost = {
sftpFollowTerminalCwd?: boolean;
};
type ShouldProbeCommandCwdOptions = {
restoreTerminalCwd: boolean;
visibleSftpHost?: FollowTerminalCwdHost | null;
sessionHost?: FollowTerminalCwdHost | null;
globalSftpFollowTerminalCwd: boolean;
};
export const shouldProbeCommandCwd = ({
restoreTerminalCwd,
visibleSftpHost,
sessionHost,
globalSftpFollowTerminalCwd,
}: ShouldProbeCommandCwdOptions): boolean => {
if (restoreTerminalCwd) return true;
if (!visibleSftpHost) return false;
const followHost = resolveSftpFollowTerminalCwdTargetHost(visibleSftpHost, sessionHost);
return resolveHostFollowTerminalCwd(
followHost?.sftpFollowTerminalCwd,
globalSftpFollowTerminalCwd,
);
};