envfile

package
v0.0.0-alpha-44 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
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

func DeleteFromEnvFile(filePath string, keys []string) error

DeleteFromEnvFile removes keys from an env file

func EnvMapToSlice

func EnvMapToSlice(env map[string]string) []string

EnvMapToSlice converts environment map to Docker-compatible slice

func EnvSliceToMap

func EnvSliceToMap(envSlice []string) map[string]string

EnvSliceToMap converts Docker-compatible slice to environment map

func GetInstanceNameFromPath

func GetInstanceNameFromPath(envPath string) string

GetInstanceNameFromPath extracts the instance name from an env file path

func LoadEnvFile

func LoadEnvFile(filePath string) (map[string]string, error)

LoadEnvFile loads environment variables from an env file

func MergeEnv

func MergeEnv(envMaps ...map[string]string) map[string]string

MergeEnv merges multiple environment maps, later maps override earlier ones

func OpenInEditor

func OpenInEditor(filePath string) error

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

func SaveEnvFile(filePath string, env map[string]string) error

SaveEnvFile writes environment variables to an env file

func UpdateEnvFile

func UpdateEnvFile(filePath string, updates map[string]string) error

UpdateEnvFile updates specific keys in an env file, preserving comments and order

Types

type ContainerEnvData

type ContainerEnvData struct {
	Name        string
	Environment map[string]string
}

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

func NewManager(dokuDir string) *Manager

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

func (m *Manager) CleanupProjectEnvFile(projectName string) error

CleanupProjectEnvFile removes the env file for a project

func (*Manager) Delete

func (m *Manager) Delete(envPath string) error

Delete removes an env file

func (*Manager) EnsureDir

func (m *Manager) EnsureDir(envPath string) error

EnsureDir ensures the env file directory exists

func (*Manager) Exists

func (m *Manager) Exists(envPath string) bool

Exists checks if an env file exists

func (*Manager) FindEnvFilesByPrefix

func (m *Manager) FindEnvFilesByPrefix(instanceName string) []string

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

func (m *Manager) GetInitContainerEnvPath(instanceName string, initContainerName string) string

GetInitContainerEnvPath returns the path to an init container's env file

func (*Manager) GetProjectEnvPath

func (m *Manager) GetProjectEnvPath(projectName string) string

GetProjectEnvPath returns the path to a project's env file

func (*Manager) GetServiceEnvPath

func (m *Manager) GetServiceEnvPath(instanceName string, containerName string) string

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

func (m *Manager) ListProjectEnvFiles() ([]string, error)

ListProjectEnvFiles returns all env files for projects

func (*Manager) ListServiceEnvFiles

func (m *Manager) ListServiceEnvFiles() ([]string, error)

ListServiceEnvFiles returns all env files for services

func (*Manager) Load

func (m *Manager) Load(envPath string) (map[string]string, error)

Load reads environment variables from an env file

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

func (*Manager) MigrateServiceEnv

func (m *Manager) MigrateServiceEnv(instanceName string, env map[string]string, containerName string) (bool, error)

MigrateServiceEnv migrates environment variables from config to env file Returns true if migration was performed, false if env file already exists

func (*Manager) Save

func (m *Manager) Save(envPath string, env map[string]string) error

Save writes environment variables to an env file

type MigrationResult

type MigrationResult struct {
	ServicesMigrated int
	ProjectsMigrated int
	Errors           []error
}

MigrationResult contains the result of a migration operation

type ProjectEnvData

type ProjectEnvData struct {
	Environment map[string]string
	Path        string
}

ProjectEnvData contains data needed for project migration

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL