(shellServer: ShellServer, containerEnv: NodeJS.ProcessEnv, passwdUser: PasswdUser | undefined)
| 279 | } |
| 280 | |
| 281 | export async function getHomeFolder(shellServer: ShellServer, containerEnv: NodeJS.ProcessEnv, passwdUser: PasswdUser | undefined) { |
| 282 | if (containerEnv.HOME) { |
| 283 | if (containerEnv.HOME === passwdUser?.home || passwdUser?.uid === '0') { |
| 284 | return containerEnv.HOME; |
| 285 | } |
| 286 | try { |
| 287 | await shellServer.exec(`[ ! -e '${containerEnv.HOME}' ] || [ -w '${containerEnv.HOME}' ]`); |
| 288 | return containerEnv.HOME; |
| 289 | } catch { |
| 290 | // Exists but not writable. |
| 291 | } |
| 292 | } |
| 293 | return passwdUser?.home || '/root'; |
| 294 | } |
| 295 | |
| 296 | async function getUserShell(containerEnv: NodeJS.ProcessEnv, passwdUser: PasswdUser | undefined) { |
| 297 | return containerEnv.SHELL || (passwdUser && passwdUser.shell) || '/bin/sh'; |
no test coverage detected