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
This commit is contained in:
Lukacs T. Berki
2021-02-26 14:27:36 +01:00
parent 3bed960399
commit 7690c09953
14 changed files with 199 additions and 79 deletions

View File

@@ -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)