UNPKG

@cto.ai/ops

Version:

💻 CTO.ai Ops - The CLI built for Teams 🚀

153 lines (152 loc) • 5.49 kB
import Docker, { ContainerCreateOptions } from 'dockerode'; import { AnalyticsService } from './Analytics'; import { ContainerService } from './Container'; import { ImageService } from './Image'; import { RegistryAuthService } from './RegistryAuth'; import { Config, Container, OpCommand, RunCommandArgs } from '../types'; export interface OpRunInputs { op: OpCommand; config: Config; parsedArgs: RunCommandArgs; options: ContainerCreateOptions; container: Docker.Container; version: string; } export declare class OpService { protected registryAuthService: RegistryAuthService; protected imageService: ImageService; protected containerService: ContainerService; protected analytics: AnalyticsService; constructor(registryAuthService?: RegistryAuthService, imageService?: ImageService, containerService?: ContainerService, analytics?: AnalyticsService); opsBuildLoop: (ops: OpCommand[], opPath: string, config: Config) => Promise<void>; run(op: OpCommand, parsedArgs: RunCommandArgs, config: Config, version: string): Promise<void>; updateOpFields: (inputs: OpRunInputs) => OpRunInputs; getImage: (inputs: OpRunInputs) => Promise<OpRunInputs>; pullImageFromRegistry: (op: OpCommand, config: Config, version: string) => Promise<void>; setOpImageUrl: (op: OpCommand, config: Config) => string; setEnvs: (inputs: OpRunInputs) => OpRunInputs; hostSetup: ({ op, ...rest }: OpRunInputs) => { op: { bind: string[]; type: "command" | "glue_code"; run: string; sdk?: string | undefined; network?: string | undefined; src: string[]; mountCwd: boolean; mountHome: boolean; port: string[]; image: string | void; name: string; version: string; platformVersion: string; description: string; publishDescription?: string | undefined; env: string[]; runId: string; opsHome: string; configDir: string; stateDir: string; teamID?: string | undefined; teamName: string; help: { usage: string; arguments: { [key: string]: string; }; options: { [key: string]: string; }; }; isPublic: boolean; isPublished?: boolean | undefined; id: string; createdAt: string; updatedAt: string; local?: boolean | undefined; }; config: Config; parsedArgs: RunCommandArgs; options: Docker.ContainerCreateOptions; container: Docker.Container; version: string; }; setBinds: ({ op, ...rest }: OpRunInputs) => { op: { bind: string[]; type: "command" | "glue_code"; run: string; sdk?: string | undefined; network?: string | undefined; src: string[]; mountCwd: boolean; mountHome: boolean; port: string[]; image: string | void; name: string; version: string; platformVersion: string; description: string; publishDescription?: string | undefined; env: string[]; runId: string; opsHome: string; configDir: string; stateDir: string; teamID?: string | undefined; teamName: string; help: { usage: string; arguments: { [key: string]: string; }; options: { [key: string]: string; }; }; isPublic: boolean; isPublished?: boolean | undefined; id: string; createdAt: string; updatedAt: string; local?: boolean | undefined; }; config: Config; parsedArgs: RunCommandArgs; options: Docker.ContainerCreateOptions; container: Docker.Container; version: string; }; getOptions: ({ op, config, ...rest }: OpRunInputs) => { op: OpCommand; options: { AttachStderr: boolean; AttachStdin: boolean; AttachStdout: boolean; Cmd: string[]; Env: string[]; WorkingDir: string; HostConfig: { Binds: string[]; NetworkMode: string | undefined; }; Image: string | void; OpenStdin: boolean; StdinOnce: boolean; Tty: boolean; Volumes: {}; VolumesFrom: never[]; }; parsedArgs: RunCommandArgs; container: Docker.Container; version: string; }; addPortsToOptions: ({ op, options, ...rest }: OpRunInputs) => Promise<OpRunInputs>; createContainer: (inputs: OpRunInputs) => Promise<OpRunInputs>; attachToContainer: (inputs: OpRunInputs) => Promise<OpRunInputs>; convertEnvStringsToObject: (acc: Container<string>, curr: string) => { [x: string]: string; }; overrideEnvWithProcessEnv: (processEnv: Container<string | undefined>) => ([key, val,]: [string, string]) => string[]; replaceHomeAlias: (bindPair: string) => string; }