UNPKG

@xec-sh/core

Version:

Universal shell execution engine

46 lines (45 loc) 1.63 kB
import { ExecutionResult } from '../core/result.js'; import { BaseAdapter, BaseAdapterConfig } from './base-adapter.js'; import { Command, SSHAdapterOptions, DockerAdapterOptions } from '../core/command.js'; export interface RemoteDockerAdapterOptions { type: 'remote-docker'; ssh: Omit<SSHAdapterOptions, 'type'>; docker: Omit<DockerAdapterOptions, 'type'>; } export interface RemoteDockerAdapterConfig extends BaseAdapterConfig { ssh: { host: string; username: string; port?: number; privateKey?: string | Buffer; passphrase?: string; password?: string; readyTimeout?: number; keepaliveInterval?: number; keepaliveCountMax?: number; }; dockerPath?: string; autoCreate?: { enabled: boolean; image: string; autoRemove: boolean; volumes?: string[]; }; } export declare class RemoteDockerAdapter extends BaseAdapter { protected readonly adapterName = "remote-docker"; private remoteDockerConfig; private sshClient; private tempContainers; constructor(config: RemoteDockerAdapterConfig); isAvailable(): Promise<boolean>; execute(command: Command): Promise<ExecutionResult>; private extractRemoteDockerOptions; private buildDockerExecCommand; private containerExists; private createTempContainer; private getConnection; private executeSSHCommand; dispose(): Promise<void>; } export declare function createRemoteDockerAdapter(sshOptions: Omit<SSHAdapterOptions, 'type'>, dockerOptions?: Partial<RemoteDockerAdapterConfig>): RemoteDockerAdapter;