forked from toolshed/abra
@ -36,6 +36,11 @@ var REPOS_BASE_URL = "https://git.coopcloud.tech/coop-cloud"
|
||||
var CATALOGUE_JSON_REPO_NAME = "recipes-catalogue-json"
|
||||
var SSH_URL_TEMPLATE = "ssh://git@git.coopcloud.tech:2222/coop-cloud/%s.git"
|
||||
|
||||
// envVarModifiers is a list of env var modifier strings. These are added to
|
||||
// env vars as comments and modify their processing by Abra, e.g. determining
|
||||
// how long secrets should be.
|
||||
var envVarModifiers = []string{"length"}
|
||||
|
||||
// GetServers retrieves all servers.
|
||||
func GetServers() ([]string, error) {
|
||||
var servers []string
|
||||
@ -50,18 +55,38 @@ func GetServers() ([]string, error) {
|
||||
return servers, nil
|
||||
}
|
||||
|
||||
// ContainsEnvVarModifier determines if an env var contains a modifier.
|
||||
func ContainsEnvVarModifier(envVar string) bool {
|
||||
for _, mod := range envVarModifiers {
|
||||
if strings.Contains(envVar, fmt.Sprintf("%s=", mod)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// ReadEnv loads an app envivornment into a map.
|
||||
func ReadEnv(filePath string) (AppEnv, error) {
|
||||
var envFile AppEnv
|
||||
var envVars AppEnv
|
||||
|
||||
envFile, err := godotenv.Read(filePath)
|
||||
envVars, err := godotenv.Read(filePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logrus.Debugf("read %s from %s", envFile, filePath)
|
||||
for idx, envVar := range envVars {
|
||||
if strings.Contains(envVar, "#") {
|
||||
if ContainsEnvVarModifier(envVar) {
|
||||
continue
|
||||
}
|
||||
vals := strings.Split(envVar, "#")
|
||||
envVars[idx] = strings.TrimSpace(vals[0])
|
||||
}
|
||||
}
|
||||
|
||||
return envFile, nil
|
||||
logrus.Debugf("read %s from %s", envVars, filePath)
|
||||
|
||||
return envVars, nil
|
||||
}
|
||||
|
||||
// ReadServerNames retrieves all server names.
|
||||
|
Reference in New Issue
Block a user