MCPcopy Index your code
hub / github.com/devcontainers/cli / getRemoteUserUIDUpdateDetails

Function getRemoteUserUIDUpdateDetails

src/spec-node/containerFeatures.ts:421–443  ·  view source on GitHub ↗
(params: DockerResolverParameters, mergedConfig: MergedDevContainerConfig, imageName: string, imageDetails: () => Promise<ImageDetails>, runArgsUser: string | undefined)

Source from the content-addressed store, hash-verified

419}
420
421export async function getRemoteUserUIDUpdateDetails(params: DockerResolverParameters, mergedConfig: MergedDevContainerConfig, imageName: string, imageDetails: () => Promise<ImageDetails>, runArgsUser: string | undefined) {
422 const { common } = params;
423 const { cliHost } = common;
424 const { updateRemoteUserUID } = mergedConfig;
425 if (params.updateRemoteUserUIDDefault === 'never' || !(typeof updateRemoteUserUID === 'boolean' ? updateRemoteUserUID : params.updateRemoteUserUIDDefault === 'on') || !(cliHost.platform === 'linux' || params.updateRemoteUserUIDOnMacOS && cliHost.platform === 'darwin')) {
426 return null;
427 }
428 const details = await imageDetails();
429 const imageUser = details.Config.User || 'root';
430 const remoteUser = mergedConfig.remoteUser || runArgsUser || imageUser;
431 if (remoteUser === 'root' || /^\d+$/.test(remoteUser)) {
432 return null;
433 }
434 const folderImageName = getFolderImageName(common);
435 const fixedImageName = `${imageName.startsWith(folderImageName) ? imageName : folderImageName}-uid`;
436
437 return {
438 imageName: fixedImageName,
439 remoteUser,
440 imageUser,
441 platform: [details.Os, details.Architecture, details.Variant].filter(Boolean).join('/')
442 };
443}
444
445export async function updateRemoteUserUID(params: DockerResolverParameters, mergedConfig: MergedDevContainerConfig, imageName: string, imageDetails: () => Promise<ImageDetails>, runArgsUser: string | undefined) {
446 const { common } = params;

Callers 1

updateRemoteUserUIDFunction · 0.85

Calls 2

getFolderImageNameFunction · 0.90
imageDetailsFunction · 0.70

Tested by

no test coverage detected