diff options
author | 2021-02-26 14:27:36 +0100 | |
---|---|---|
committer | 2021-03-03 09:14:22 +0100 | |
commit | 7690c099539884c8c4a94429eed54573586321be (patch) | |
tree | 6c947227785120140c4bc8fc1b7083833ae58a21 /shared/env.go | |
parent | 3bed960399dad2f97f75ef33e1ab407b84d3e6c7 (diff) |
cd to / before running soong_build .
This lets one avoid any decisions as to when to chdir there during its
execution and leads to better sandboxing because the pwd doesn't leak to
init() functions anymore.
Test: Manual.
Change-Id: I1560da8ed3a621249426f9e8908aa890c21e13ba
Diffstat (limited to 'shared/env.go')
-rw-r--r-- | shared/env.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/shared/env.go b/shared/env.go index 7900daa88..152729ba0 100644 --- a/shared/env.go +++ b/shared/env.go @@ -91,6 +91,28 @@ func StaleEnvFile(filepath string, getenv func(string) string) (bool, error) { return false, nil } +// Deserializes and environment serialized by EnvFileContents() and returns it +// as a map[string]string. +func EnvFromFile(envFile string) (map[string]string, error) { + result := make(map[string]string) + data, err := ioutil.ReadFile(envFile) + if err != nil { + return result, err + } + + var contents envFileData + err = json.Unmarshal(data, &contents) + if err != nil { + return result, err + } + + for _, entry := range contents { + result[entry.Key] = entry.Value + } + + return result, nil +} + // Implements sort.Interface so that we can use sort.Sort on envFileData arrays. func (e envFileData) Len() int { return len(e) |