@cto.ai/ops
Version:
💻 CTO.ai Ops - The CLI built for Teams 🚀
153 lines (152 loc) • 5.49 kB
TypeScript
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;
}