(options: ProvisionOptions, providedIdLabels: string[] | undefined, disposables: (() => Promise<unknown> | undefined)[])
| 77 | } |
| 78 | |
| 79 | export async function launch(options: ProvisionOptions, providedIdLabels: string[] | undefined, disposables: (() => Promise<unknown> | undefined)[]) { |
| 80 | const params = await createDockerParams(options, disposables); |
| 81 | const output = params.common.output; |
| 82 | const text = 'Resolving Remote'; |
| 83 | const start = output.start(text); |
| 84 | |
| 85 | const result = await resolve(params, options.configFile, options.overrideConfigFile, providedIdLabels, options.additionalFeatures ?? {}); |
| 86 | output.stop(text, start); |
| 87 | const { dockerContainerId, composeProjectName } = result; |
| 88 | return { |
| 89 | containerId: dockerContainerId, |
| 90 | composeProjectName, |
| 91 | remoteUser: result.properties.user, |
| 92 | remoteWorkspaceFolder: result.properties.remoteWorkspaceFolder, |
| 93 | configuration: options.includeConfig ? result.config : undefined, |
| 94 | mergedConfiguration: options.includeMergedConfig ? result.mergedConfig : undefined, |
| 95 | finishBackgroundTasks: async () => { |
| 96 | try { |
| 97 | await finishBackgroundTasks(result.params.backgroundTasks); |
| 98 | } catch (err) { |
| 99 | output.write(toErrorText(String(err && (err.stack || err.message) || err))); |
| 100 | } |
| 101 | }, |
| 102 | }; |
| 103 | } |
| 104 | |
| 105 | export async function createDockerParams(options: ProvisionOptions, disposables: (() => Promise<unknown> | undefined)[]): Promise<DockerResolverParameters> { |
| 106 | const { persistedFolder, additionalMounts, updateRemoteUserUIDDefault, containerDataFolder, containerSystemDataFolder, workspaceMountConsistency, gpuAvailability, mountWorkspaceGitRoot, mountGitWorktreeCommonDir, remoteEnv, noLockfile, frozenLockfile, omitLoggerHeader, secretsP } = options; |
no test coverage detected