31 lines
777 B
Go
31 lines
777 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/dokku/dokku/plugins/common"
|
|
)
|
|
|
|
// GetWithDefault returns the value set for a given key, returning defaultValue if none found
|
|
func GetWithDefault(appName string, key string, defaultValue string) (value string) {
|
|
value = defaultValue
|
|
|
|
envFile := strings.Join([]string{common.MustGetEnv("DOKKU_ROOT"), appName, "ENV"}, "/")
|
|
lines, err := common.FileToSlice(envFile)
|
|
if err != nil {
|
|
return
|
|
}
|
|
prefix := fmt.Sprintf("export %v=", key)
|
|
for _, line := range lines {
|
|
if !strings.HasPrefix(line, prefix) {
|
|
continue
|
|
}
|
|
value = strings.TrimPrefix(line, prefix)
|
|
if strings.HasPrefix(value, "'") && strings.HasSuffix(value, "'") {
|
|
value = strings.TrimPrefix(strings.TrimSuffix(value, "'"), "'")
|
|
}
|
|
}
|
|
return
|
|
}
|