Documentation ¶
Overview ¶
Package environment defines object describing the current environment.
Index ¶
- Variables
- func SortEnvironmentVariables(envvars []IEnvironmentVariable)
- func ValidateEnvironmentVariables(vars ...IEnvironmentVariable) error
- type EnvVar
- type IEnvironment
- type IEnvironmentVariable
- func CloneEnvironmentVariable(envVar IEnvironmentVariable) IEnvironmentVariable
- func ExpandEnvironmentVariable(recursive bool, envVarToExpand IEnvironmentVariable, ...) (expandedEnvVar IEnvironmentVariable)
- func ExpandEnvironmentVariables(recursive bool, envvars ...IEnvironmentVariable) (expandedEnvVars []IEnvironmentVariable)
- func FindEnvironmentVariable(envvar string, envvars ...IEnvironmentVariable) (IEnvironmentVariable, error)
- func FindFoldEnvironmentVariable(envvar string, envvars ...IEnvironmentVariable) (IEnvironmentVariable, error)
- func MergeEnvironmentVariableSets(caseSensitive bool, envvarSet1 []IEnvironmentVariable, ...) (mergedEnvVars []IEnvironmentVariable)
- func NewEnvironmentVariable(key, value string) IEnvironmentVariable
- func NewEnvironmentVariableWithValidation(key, value string, rules ...validation.Rule) IEnvironmentVariable
- func ParseEnvironmentVariable(variable string) (IEnvironmentVariable, error)
- func ParseEnvironmentVariables(variables ...string) (envVars []IEnvironmentVariable)
- func UniqueEnvironmentVariables(caseSensitive bool, envvars ...IEnvironmentVariable) (uniqueEnvVars []IEnvironmentVariable)
Constants ¶
This section is empty.
Variables ¶
var ( // IsEnvironmentVariableKey defines a validation rule for environment variable keys ([IEEE Std 1003.1-2008 / IEEE POSIX P1003.2/ISO 9945.2](http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02)) for use with github.com/go-ozzo/ozzo-validation // TODO use the built-in implementation in `is` package when https://github.com/go-ozzo/ozzo-validation/issues/186 is looked at. IsEnvironmentVariableKey = validation.NewStringRuleWithError(isEnvVarKey, errEnvvarInvalid) )
Functions ¶
func SortEnvironmentVariables ¶ added in v1.53.0
func SortEnvironmentVariables(envvars []IEnvironmentVariable)
SortEnvironmentVariables sorts a list of environment variable alphabetically no matter the case.
func ValidateEnvironmentVariables ¶
func ValidateEnvironmentVariables(vars ...IEnvironmentVariable) error
ValidateEnvironmentVariables validates that environment variables are correctly defined in regard to their schema.
Types ¶
type EnvVar ¶
type EnvVar struct {
// contains filtered or unexported fields
}
func (*EnvVar) Equal ¶
func (e *EnvVar) Equal(v IEnvironmentVariable) bool
func (*EnvVar) MarshalText ¶
func (*EnvVar) UnmarshalText ¶
type IEnvironment ¶
type IEnvironment interface { // GetCurrentUser returns the environment current user. GetCurrentUser() *user.User // GetEnvironmentVariables returns the variables defining the environment (and optionally those supplied in `dotEnvFiles`) // `dotEnvFiles` corresponds to `.env` files present on the machine and follows the mechanism described by https://github.com/bkeepers/dotenv GetEnvironmentVariables(dotEnvFiles ...string) []IEnvironmentVariable // GetExpandedEnvironmentVariables is similar to GetEnvironmentVariables but returns variables with fully expanded values. // e.g. on Linux, if variable1=${variable2}, then the reported value of variable1 will be the value of variable2 GetExpandedEnvironmentVariables(dotEnvFiles ...string) []IEnvironmentVariable // GetFilesystem returns the filesystem associated with the current environment GetFilesystem() filesystem.FS // GetEnvironmentVariable returns the environment variable corresponding to `envvar` or an error if it not set. optionally it searches `dotEnvFiles` files too // `dotEnvFiles` corresponds to `.env` files present on the machine and follows the mechanism described by https://github.com/bkeepers/dotenv GetEnvironmentVariable(envvar string, dotEnvFiles ...string) (IEnvironmentVariable, error) // GetExpandedEnvironmentVariable is similar to GetEnvironmentVariable but returns variables with fully expanded values. // // e.g. on Linux, if variable1=${variable2}, then the reported value of variable1 will be the value of variable2 GetExpandedEnvironmentVariable(envvar string, dotEnvFiles ...string) (IEnvironmentVariable, error) }
IEnvironment defines an environment for an application to run on.
func NewCurrentEnvironment ¶
func NewCurrentEnvironment() IEnvironment
NewCurrentEnvironment returns system current environment.
type IEnvironmentVariable ¶
type IEnvironmentVariable interface { encoding.TextMarshaler encoding.TextUnmarshaler fmt.Stringer // GetKey returns the variable key. GetKey() string // GetValue returns the variable value. GetValue() string // Validate checks whether the variable value is correctly defined Validate() error // Equal states whether two environment variables are equal or not. Equal(v IEnvironmentVariable) bool }
IEnvironmentVariable defines an environment variable to be set for the commands to run.
func CloneEnvironmentVariable ¶ added in v1.53.0
func CloneEnvironmentVariable(envVar IEnvironmentVariable) IEnvironmentVariable
CloneEnvironmentVariable returns a clone of the environment variable.
func ExpandEnvironmentVariable ¶ added in v1.52.0
func ExpandEnvironmentVariable(recursive bool, envVarToExpand IEnvironmentVariable, envvars ...IEnvironmentVariable) (expandedEnvVar IEnvironmentVariable)
ExpandEnvironmentVariable returns a clone of envVarToExpand but with an expanded value based on environment variables defined in envvars list. Expansion assumes that all the variables are present in the envvars list. If recursive is set to true, then expansion is performed recursively over the variable list.
func ExpandEnvironmentVariables ¶ added in v1.52.0
func ExpandEnvironmentVariables(recursive bool, envvars ...IEnvironmentVariable) (expandedEnvVars []IEnvironmentVariable)
ExpandEnvironmentVariables returns a list of environment variables with their value being expanded. Expansion assumes that all the variables are present in the envvars list. If recursive is set to true, then expansion is performed recursively over the variable list.
func FindEnvironmentVariable ¶ added in v1.49.0
func FindEnvironmentVariable(envvar string, envvars ...IEnvironmentVariable) (IEnvironmentVariable, error)
FindEnvironmentVariable looks for an environment variable in a list. if no environment variable matches, an error is returned
func FindFoldEnvironmentVariable ¶ added in v1.53.0
func FindFoldEnvironmentVariable(envvar string, envvars ...IEnvironmentVariable) (IEnvironmentVariable, error)
FindFoldEnvironmentVariable looks for an environment variable in a list similarly to FindEnvironmentVariable but without case-sensitivity.
func MergeEnvironmentVariableSets ¶ added in v1.53.0
func MergeEnvironmentVariableSets(caseSensitive bool, envvarSet1 []IEnvironmentVariable, envvarSet2 ...IEnvironmentVariable) (mergedEnvVars []IEnvironmentVariable)
MergeEnvironmentVariableSets merges two sets of environment variables. If both sets have a same environment variable, its value in set 1 will take precedence. caseSensitive states whether two similar keys with different case should be considered as different
func NewEnvironmentVariable ¶
func NewEnvironmentVariable(key, value string) IEnvironmentVariable
NewEnvironmentVariable returns an environment variable defined by a key and a value.
func NewEnvironmentVariableWithValidation ¶
func NewEnvironmentVariableWithValidation(key, value string, rules ...validation.Rule) IEnvironmentVariable
NewEnvironmentVariableWithValidation returns an environment variable defined by a key and a value but with the possibility to define value validation rules.
func ParseEnvironmentVariable ¶
func ParseEnvironmentVariable(variable string) (IEnvironmentVariable, error)
ParseEnvironmentVariable parses an environment variable definition, in the form "key=value".
func ParseEnvironmentVariables ¶ added in v1.49.0
func ParseEnvironmentVariables(variables ...string) (envVars []IEnvironmentVariable)
ParseEnvironmentVariables parses a list of key=value entries such as os.Environ() and returns a list of the corresponding environment variables. Any entry failing parsing will be ignored.
func UniqueEnvironmentVariables ¶ added in v1.53.0
func UniqueEnvironmentVariables(caseSensitive bool, envvars ...IEnvironmentVariable) (uniqueEnvVars []IEnvironmentVariable)
UniqueEnvironmentVariables returns a list of unique environment variables. caseSensitive states whether two same keys but with different case should be both considered unique.