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

Function doExec

src/spec-node/devContainersSpecCLI.ts:1313–1436  ·  view source on GitHub ↗
({
	'user-data-folder': persistedFolder,
	'docker-path': dockerPath,
	'docker-compose-path': dockerComposePath,
	'container-data-folder': containerDataFolder,
	'container-system-data-folder': containerSystemDataFolder,
	'workspace-folder': workspaceFolderArg,
	'mount-workspace-git-root': mountWorkspaceGitRoot,
	'mount-git-worktree-common-dir': mountGitWorktreeCommonDir,
	'container-id': containerId,
	'id-label': idLabel,
	config: configParam,
	'override-config': overrideConfig,
	'log-level': logLevel,
	'log-format': logFormat,
	'terminal-rows': terminalRows,
	'terminal-columns': terminalColumns,
	'default-user-env-probe': defaultUserEnvProbe,
	'remote-env': addRemoteEnv,
	'skip-feature-auto-mapping': skipFeatureAutoMapping,
	_: restArgs,
}: ExecArgs & { _?: string[] })

Source from the content-addressed store, hash-verified

1311}
1312
1313export async function doExec({
1314 'user-data-folder': persistedFolder,
1315 'docker-path': dockerPath,
1316 'docker-compose-path': dockerComposePath,
1317 'container-data-folder': containerDataFolder,
1318 'container-system-data-folder': containerSystemDataFolder,
1319 'workspace-folder': workspaceFolderArg,
1320 'mount-workspace-git-root': mountWorkspaceGitRoot,
1321 'mount-git-worktree-common-dir': mountGitWorktreeCommonDir,
1322 'container-id': containerId,
1323 'id-label': idLabel,
1324 config: configParam,
1325 'override-config': overrideConfig,
1326 'log-level': logLevel,
1327 'log-format': logFormat,
1328 'terminal-rows': terminalRows,
1329 'terminal-columns': terminalColumns,
1330 'default-user-env-probe': defaultUserEnvProbe,
1331 'remote-env': addRemoteEnv,
1332 'skip-feature-auto-mapping': skipFeatureAutoMapping,
1333 _: restArgs,
1334}: ExecArgs & { _?: string[] }) {
1335 const disposables: (() => Promise<unknown> | undefined)[] = [];
1336 const dispose = async () => {
1337 await Promise.all(disposables.map(d => d()));
1338 };
1339 let output: Log | undefined;
1340 const isTTY = process.stdin.isTTY && process.stdout.isTTY || logFormat === 'json'; // If stdin or stdout is a pipe, we don't want to use a PTY.
1341 try {
1342 const workspaceFolder = workspaceFolderArg ? path.resolve(process.cwd(), workspaceFolderArg) : undefined;
1343 const providedIdLabels = idLabel ? Array.isArray(idLabel) ? idLabel as string[] : [idLabel] : undefined;
1344 const addRemoteEnvs = addRemoteEnv ? (Array.isArray(addRemoteEnv) ? addRemoteEnv as string[] : [addRemoteEnv]) : [];
1345 const configFile = configParam ? URI.file(path.resolve(process.cwd(), configParam)) : undefined;
1346 const overrideConfigFile = overrideConfig ? URI.file(path.resolve(process.cwd(), overrideConfig)) : undefined;
1347 const params = await createDockerParams({
1348 dockerPath,
1349 dockerComposePath,
1350 containerDataFolder,
1351 containerSystemDataFolder,
1352 workspaceFolder,
1353 mountWorkspaceGitRoot,
1354 mountGitWorktreeCommonDir,
1355 configFile,
1356 overrideConfigFile,
1357 logLevel: mapLogLevel(logLevel),
1358 logFormat,
1359 log: text => process.stderr.write(text),
1360 terminalDimensions: terminalColumns && terminalRows ? { columns: terminalColumns, rows: terminalRows } : isTTY ? { columns: process.stdout.columns, rows: process.stdout.rows } : undefined,
1361 onDidChangeTerminalDimensions: terminalColumns && terminalRows ? undefined : isTTY ? createStdoutResizeEmitter(disposables) : undefined,
1362 defaultUserEnvProbe,
1363 removeExistingContainer: false,
1364 buildNoCache: false,
1365 expectExistingContainer: false,
1366 postCreateEnabled: true,
1367 skipNonBlocking: false,
1368 prebuild: false,
1369 persistedFolder,
1370 additionalMounts: [],

Callers 2

execFunction · 0.90
execFunction · 0.85

Calls 15

createDockerParamsFunction · 0.90
mapLogLevelFunction · 0.90
envListToObjFunction · 0.90
workspaceFromPathFunction · 0.90
uriToFsPathFunction · 0.90
substituteFunction · 0.90
findContainerAndIdLabelsFunction · 0.90
bailOutFunction · 0.90

Tested by

no test coverage detected