自动同步: 2026-07-01 02:10
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
import { homedir } from "node:os";
|
||||
import { win32 } from "node:path";
|
||||
/**
|
||||
* Resolve the user's home directory, preferring environment variables over
|
||||
* os.homedir(). On Linux, os.homedir() reads from /etc/passwd which can
|
||||
* return a stale path after a user rename (usermod -l). The $HOME env var
|
||||
* is set by the login process and reflects the current session.
|
||||
*/
|
||||
export function resolveHome() {
|
||||
if (process.platform === "win32") {
|
||||
return normalizeHome(process.env.USERPROFILE) || normalizeHome(process.env.HOME) || homedir();
|
||||
}
|
||||
return normalizeHome(process.env.HOME) || homedir();
|
||||
}
|
||||
function normalizeHome(value) {
|
||||
const trimmed = value?.trim();
|
||||
if (!trimmed)
|
||||
return "";
|
||||
if (process.platform === "win32") {
|
||||
const root = win32.parse(trimmed).root;
|
||||
if (trimmed === root)
|
||||
return trimmed;
|
||||
return trimmed.replace(/[\\/]+$/, "");
|
||||
}
|
||||
if (trimmed === "/")
|
||||
return "/";
|
||||
return trimmed.replace(/\/+$/, "");
|
||||
}
|
||||
//# sourceMappingURL=homedir.js.map
|
||||
Reference in New Issue
Block a user