codex-cli/src/utils/short-path.ts (23 lines of code) (raw):
import path from "path";
export function shortenPath(p: string, maxLength = 40): string {
const home = process.env["HOME"];
// Replace home directory with '~' if applicable.
const displayPath =
home !== undefined && p.startsWith(home) ? p.replace(home, "~") : p;
if (displayPath.length <= maxLength) {
return displayPath;
}
const parts = displayPath.split(path.sep);
let result = "";
for (let i = parts.length - 1; i >= 0; i--) {
const candidate = path.join("~", "...", ...parts.slice(i));
if (candidate.length <= maxLength) {
result = candidate;
} else {
break;
}
}
return result || displayPath.slice(-maxLength);
}
export function shortCwd(maxLength = 40): string {
return shortenPath(process.cwd(), maxLength);
}