fix: don't export from within function
Also, don't explode on command function which has "export" in the name! See coop-cloud/organising#498
This commit is contained in:
parent
970ae0fc4e
commit
bad686f715
|
@ -153,7 +153,11 @@ func ReadAbraShEnvVars(abraSh string) (map[string]string, error) {
|
|||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if strings.Contains(line, "export") {
|
||||
if strings.Contains(line, "export ") {
|
||||
if len(strings.TrimSpace(line)) < len(line) {
|
||||
// NOTE(d1): indented lines are exports within functions
|
||||
continue
|
||||
}
|
||||
splitVals := strings.Split(line, "export ")
|
||||
envVarDef := splitVals[len(splitVals)-1]
|
||||
keyVal := strings.Split(envVarDef, "=")
|
||||
|
|
|
@ -87,3 +87,25 @@ func TestReadEnv(t *testing.T) {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadAbraShEnvVars(t *testing.T) {
|
||||
if err := catalogue.EnsureCatalogue(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
offline := true
|
||||
r, err := recipe.Get("abra-integration-test-recipe", offline)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
abraShPath := fmt.Sprintf("%s/%s/%s", config.RECIPES_DIR, r.Name, "abra.sh")
|
||||
abraShEnv, err := config.ReadAbraShEnvVars(abraShPath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if _, ok := abraShEnv["INNER_FOO"]; ok {
|
||||
t.Error("INNER_FOO should not be exported")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue