diff options
author | 2019-12-12 10:23:57 -0800 | |
---|---|---|
committer | 2020-01-09 14:19:46 -0800 | |
commit | 05c25ccb4adb5329add700b533416c226cdbfa96 (patch) | |
tree | 79912c740318a967a9091285a5be7aece8fdcf6c /java/jdeps.go | |
parent | 62c085d7fefd0297d06c417992d48bc68da42645 (diff) |
Sandbox soong_build by changing to root directory
Store the current working directory and then change to the root
directory so that all file accesses must go through helpers in
the android package that properly track dependencies.
Fixes: 146437378
Test: m checkbuild
Change-Id: I12a0f907753fefd1997ab8b4ea2ac331234093cf
Diffstat (limited to 'java/jdeps.go')
-rw-r--r-- | java/jdeps.go | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/java/jdeps.go b/java/jdeps.go index fccc40fa8..49e3de3cc 100644 --- a/java/jdeps.go +++ b/java/jdeps.go @@ -17,7 +17,6 @@ package java import ( "encoding/json" "fmt" - "os" "android/soong/android" ) @@ -92,23 +91,21 @@ func (j *jdepsGeneratorSingleton) GenerateBuildActions(ctx android.SingletonCont moduleInfos[name] = dpInfo }) - jfpath := android.PathForOutput(ctx, jdepsJsonFileName).String() + jfpath := android.PathForOutput(ctx, jdepsJsonFileName) err := createJsonFile(moduleInfos, jfpath) if err != nil { ctx.Errorf(err.Error()) } } -func createJsonFile(moduleInfos map[string]android.IdeInfo, jfpath string) error { - file, err := os.Create(jfpath) +func createJsonFile(moduleInfos map[string]android.IdeInfo, jfpath android.WritablePath) error { + buf, err := json.MarshalIndent(moduleInfos, "", "\t") if err != nil { - return fmt.Errorf("Failed to create file: %s, relative: %v", jdepsJsonFileName, err) + return fmt.Errorf("JSON marshal of java deps failed: %s", err) } - defer file.Close() - buf, err := json.MarshalIndent(moduleInfos, "", "\t") + err = android.WriteFileToOutputDir(jfpath, buf, 0666) if err != nil { - return fmt.Errorf("Write file failed: %s, relative: %v", jdepsJsonFileName, err) + return fmt.Errorf("Writing java deps to %s failed: %s", jfpath.String(), err) } - fmt.Fprintf(file, string(buf)) return nil } |