|
1 | 1 | import path from "path";
|
| 2 | +import { logger } from "./logger"; |
2 | 3 |
|
3 | 4 | export function getUserHomeDir(): string {
|
| 5 | + logger.debug("Environment variables:"); |
| 6 | + logger.debug(`HOME: ${process.env.HOME}`); |
| 7 | + logger.debug(`USER: ${process.env.USER}`); |
| 8 | + logger.debug(`USERNAME: ${process.env.USERNAME}`); |
| 9 | + logger.debug(`PWD: ${process.env.PWD}`); |
| 10 | + logger.debug(`LOGNAME: ${process.env.LOGNAME}`); |
| 11 | + logger.debug(`Current UID: ${process.getuid?.()}`); |
| 12 | + |
| 13 | + // Print all environment variables for debugging |
| 14 | + logger.debug("All environment variables:"); |
| 15 | + Object.entries(process.env).forEach(([key, value]) => { |
| 16 | + logger.debug(`${key}: ${value}`); |
| 17 | + }); |
| 18 | + |
4 | 19 | // First try standard environment variables
|
5 | 20 | if (process.env.HOME) {
|
| 21 | + logger.debug(`Using HOME env var: ${process.env.HOME}`); |
6 | 22 | return process.env.HOME;
|
7 | 23 | }
|
8 | 24 |
|
9 | 25 | // Fallback to constructing path from username
|
10 |
| - const username = process.env.USER || process.env.USERNAME; |
| 26 | + const username = process.env.USER || process.env.USERNAME || process.env.LOGNAME; |
11 | 27 | if (username) {
|
12 |
| - return path.join("/home", username); |
| 28 | + const homePath = path.join("/home", username); |
| 29 | + logger.debug(`Constructed home path from username: ${homePath}`); |
| 30 | + return homePath; |
13 | 31 | }
|
| 32 | + |
| 33 | + logger.error("Could not determine user home directory"); |
| 34 | + logger.error("No HOME env var and no username found"); |
14 | 35 | throw new Error("Could not determine user home directory");
|
15 | 36 | }
|
0 commit comments