Documentation
¶
Index ¶
- Constants
- func DeleteFromEnvFile(filePath string, keys []string) error
- func EnvMapToSlice(env map[string]string) []string
- func EnvSliceToMap(envSlice []string) map[string]string
- func GetInstanceNameFromPath(envPath string) string
- func LoadEnvFile(filePath string) (map[string]string, error)
- func MergeEnv(envMaps ...map[string]string) map[string]string
- func OpenInEditor(filePath string) error
- func PrintMigrationResult(result *MigrationResult)
- func SaveEnvFile(filePath string, env map[string]string) error
- func UpdateEnvFile(filePath string, updates map[string]string) error
- type ContainerEnvData
- type InstanceEnvData
- type Manager
- func (m *Manager) CleanupEnvFiles(instanceName string, isMultiContainer bool, containerNames []string) error
- func (m *Manager) CleanupProjectEnvFile(projectName string) error
- func (m *Manager) Delete(envPath string) error
- func (m *Manager) EnsureDir(envPath string) error
- func (m *Manager) Exists(envPath string) bool
- func (m *Manager) FindEnvFilesByPrefix(instanceName string) []string
- func (m *Manager) GetInitContainerEnvPath(instanceName string, initContainerName string) string
- func (m *Manager) GetProjectEnvPath(projectName string) string
- func (m *Manager) GetServiceEnvPath(instanceName string, containerName string) string
- func (m *Manager) ListProjectEnvFiles() ([]string, error)
- func (m *Manager) ListServiceEnvFiles() ([]string, error)
- func (m *Manager) Load(envPath string) (map[string]string, error)
- func (m *Manager) MigrateAllFromConfig(instances map[string]InstanceEnvData, projects map[string]ProjectEnvData) *MigrationResult
- func (m *Manager) MigrateProjectEnv(projectName string, env map[string]string, projectPath string) (bool, error)
- func (m *Manager) MigrateServiceEnv(instanceName string, env map[string]string, containerName string) (bool, error)
- func (m *Manager) Save(envPath string, env map[string]string) error
- type MigrationResult
- type ProjectEnvData
Constants ¶
const ( // ServiceEnvDir is the subdirectory for service env files ServiceEnvDir = "services" // ProjectEnvDir is the subdirectory for project env files ProjectEnvDir = "projects" )
Variables ¶
This section is empty.
Functions ¶
func DeleteFromEnvFile ¶
DeleteFromEnvFile removes keys from an env file
func EnvMapToSlice ¶
EnvMapToSlice converts environment map to Docker-compatible slice
func EnvSliceToMap ¶
EnvSliceToMap converts Docker-compatible slice to environment map
func GetInstanceNameFromPath ¶
GetInstanceNameFromPath extracts the instance name from an env file path
func LoadEnvFile ¶
LoadEnvFile loads environment variables from an env file
func OpenInEditor ¶
OpenInEditor opens the env file in the user's preferred editor
func PrintMigrationResult ¶
func PrintMigrationResult(result *MigrationResult)
PrintMigrationResult prints the migration result to stdout
func SaveEnvFile ¶
SaveEnvFile writes environment variables to an env file
Types ¶
type ContainerEnvData ¶
ContainerEnvData contains data needed for container migration
type InstanceEnvData ¶
type InstanceEnvData struct {
Environment map[string]string
IsMultiContainer bool
Containers []ContainerEnvData
}
InstanceEnvData contains data needed for instance migration
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles environment file operations
func NewManager ¶
NewManager creates a new environment file manager
func (*Manager) CleanupEnvFiles ¶
func (m *Manager) CleanupEnvFiles(instanceName string, isMultiContainer bool, containerNames []string) error
CleanupEnvFiles removes env files for a service or project
func (*Manager) CleanupProjectEnvFile ¶
CleanupProjectEnvFile removes the env file for a project
func (*Manager) FindEnvFilesByPrefix ¶
FindEnvFilesByPrefix returns all env files that match a given instance prefix This is useful for finding multi-container env files like <instance>-<container>.env
func (*Manager) GetInitContainerEnvPath ¶
GetInitContainerEnvPath returns the path to an init container's env file
func (*Manager) GetProjectEnvPath ¶
GetProjectEnvPath returns the path to a project's env file
func (*Manager) GetServiceEnvPath ¶
GetServiceEnvPath returns the path to a service's env file For single-container services: ~/.doku/services/<instance>.env For multi-container services with container name: ~/.doku/services/<instance>-<container>.env
func (*Manager) ListProjectEnvFiles ¶
ListProjectEnvFiles returns all env files for projects
func (*Manager) ListServiceEnvFiles ¶
ListServiceEnvFiles returns all env files for services
func (*Manager) MigrateAllFromConfig ¶
func (m *Manager) MigrateAllFromConfig(instances map[string]InstanceEnvData, projects map[string]ProjectEnvData) *MigrationResult
MigrateAllFromConfig migrates all services and projects from config This is called during operations that need env vars to ensure migration happens
func (*Manager) MigrateProjectEnv ¶
func (m *Manager) MigrateProjectEnv(projectName string, env map[string]string, projectPath string) (bool, error)
MigrateProjectEnv migrates environment variables from project config to env file Also handles migration from .env.doku in project directory
type MigrationResult ¶
MigrationResult contains the result of a migration operation
type ProjectEnvData ¶
ProjectEnvData contains data needed for project migration