Table of Contents

Namespace Ando.Execution

Classes

ArgumentBuilder

Fluent builder for constructing CLI argument arrays. Provides conditional argument inclusion for cleaner code.

CommandExecutorBase

Base class for command executors that provides shared process execution logic. Subclasses implement PrepareProcessStartInfo(string, string[], CommandOptions) to customize command setup.

CommandOptions

Options for command execution. Mutable class to allow fluent configuration before execution.

CommandResult

Result of executing a command. Immutable record to prevent accidental modification of results.

ContainerConfig

Configuration for creating a container. Mutable to allow fluent configuration pattern.

ContainerExecutor

Executes commands inside a Docker container via 'docker exec'. Provides real-time output streaming and working directory management. Implements ICommandExecutor for seamless switching between local and container execution.

ContainerInfo

Container information and state. Immutable record for safe passing between methods.

DockerManager

Manages Docker container lifecycle for isolated build execution. Implements warm container pattern for fast subsequent builds.

ProcessRunner

Executes commands on the host machine as child processes with real-time output streaming. Used for Docker CLI commands that must run on the host to manage containers.

Interfaces

ICommandExecutor

Interface for executing CLI commands. Implementations include ProcessRunner (local) and ContainerExecutor (Docker). This abstraction enables ANDO to run the same build logic in different environments.

Enums

DockerAvailability

Result of checking Docker availability on the system. Used to provide specific, actionable error messages.