docker-pilot
Version:
A powerful, scalable Docker CLI library for managing containerized applications of any size
116 lines • 3.21 kB
TypeScript
/**
* Configuration Manager for Docker Pilot
* Handles loading, saving, and validation of configuration files
*/
import { DockerPilotConfig } from '../types';
export interface ConfigManagerOptions {
configPath?: string;
autoSave?: boolean;
createDefault?: boolean;
validateOnLoad?: boolean;
}
export declare class ConfigManager {
private config;
private configPath;
private logger;
private fileUtils;
private validationUtils;
private options;
private i18n;
constructor(options?: ConfigManagerOptions);
/**
* Clean old backup files with timestamp pattern
*/
private cleanOldBackups;
/**
* Get default configuration file path
*/
private getDefaultConfigPath;
/**
* Load configuration from file
*/
loadConfig(): Promise<DockerPilotConfig>;
/**
* Save configuration to file
*/
saveConfig(config?: DockerPilotConfig): Promise<void>;
/**
* Get current configuration
*/
getConfig(): DockerPilotConfig;
/**
* Update configuration
*/
updateConfig(updates: Partial<DockerPilotConfig>): Promise<DockerPilotConfig>;
/**
* Add or update a service
*/
addService(serviceName: string, serviceConfig: any): Promise<DockerPilotConfig>;
/**
* Remove a service
*/
removeService(serviceName: string): Promise<DockerPilotConfig>;
/**
* Add a plugin
*/
addPlugin(pluginPath: string): Promise<DockerPilotConfig>;
/**
* Remove a plugin
*/
removePlugin(pluginPath: string): Promise<DockerPilotConfig>;
/**
* Create default configuration
*/
createDefaultConfig(): DockerPilotConfig;
/**
* Infer project name from current directory or package.json
*/
private inferProjectName;
/**
* Deep merge configuration objects
*/
private mergeConfig; /**
* Detect Docker Compose services from file or search recursively with enhanced search
*/
detectServicesFromCompose(composePath?: string): Promise<Record<string, any>>;
/**
* Determine if backup should be enabled for service
*/
private shouldEnableBackup;
/**
* Normalize environment variables to ensure all values are strings
*/
private normalizeEnvironmentVariables;
/**
* Extract port number from Docker port mapping
*/
private extractPortFromMapping;
/**
* Auto-detect and update services from Docker Compose
*/ autoDetectServices(replaceExisting?: boolean): Promise<DockerPilotConfig>;
/**
* Get configuration file path
*/
getConfigPath(): string;
/**
* Set configuration file path
*/
setConfigPath(configPath: string): void;
/**
* Check if configuration is loaded
*/
isLoaded(): boolean;
/**
* Reset configuration to default
*/
resetToDefault(): Promise<DockerPilotConfig>;
/**
* Export configuration to different file
*/
exportConfig(exportPath: string): Promise<void>;
/**
* Import configuration from file
*/
importConfig(importPath: string): Promise<DockerPilotConfig>;
}
//# sourceMappingURL=ConfigManager.d.ts.map