chore: Update the types and get the container-runtime working

This commit is contained in:
J H
2024-03-20 10:48:03 -06:00
parent 8d83f64aba
commit 53d82618d9
10 changed files with 139 additions and 88 deletions

View File

@@ -205,16 +205,7 @@ export class StartSdk<Manifest extends SDKManifest, Store> {
mounts?: { path: string; options: MountOptions }[]
},
): Promise<{ stdout: string | Buffer; stderr: string | Buffer }> => {
const commands = splitCommand(command)
const overlay = await Overlay.of(effects, imageId)
try {
for (let mount of options.mounts || []) {
await overlay.mount(mount.options, mount.path)
}
return await overlay.exec(commands)
} finally {
await overlay.destroy()
}
return runCommand<Manifest>(effects, imageId, command, options)
},
createDynamicAction: <
@@ -654,3 +645,23 @@ export class StartSdk<Manifest extends SDKManifest, Store> {
}
}
}
export async function runCommand<Manifest extends SDKManifest>(
effects: Effects,
imageId: Manifest["images"][number],
command: string | [string, ...string[]],
options: CommandOptions & {
mounts?: { path: string; options: MountOptions }[]
},
): Promise<{ stdout: string | Buffer; stderr: string | Buffer }> {
const commands = splitCommand(command)
const overlay = await Overlay.of(effects, imageId)
try {
for (let mount of options.mounts || []) {
await overlay.mount(mount.options, mount.path)
}
return await overlay.exec(commands)
} finally {
await overlay.destroy()
}
}