Merge "Create soong_injection files in ReadWrite mode"
This commit is contained in:
commit
a0206f3d29
2 changed files with 19 additions and 1 deletions
|
@ -238,7 +238,12 @@ func runApiBp2build(configuration android.Config, ctx *android.Context, extraNin
|
|||
soongInjectionFiles := bp2build.CreateSoongInjectionFiles(configuration, bp2build.CreateCodegenMetrics())
|
||||
absoluteSoongInjectionDir := shared.JoinPath(topDir, configuration.SoongOutDir(), bazel.SoongInjectionDirName)
|
||||
for _, file := range soongInjectionFiles {
|
||||
writeReadOnlyFile(absoluteSoongInjectionDir, file)
|
||||
// The API targets in api_bp2build workspace do not have any dependency on api_bp2build.
|
||||
// But we need to create these files to prevent errors during Bazel analysis.
|
||||
// These need to be created in Read-Write mode.
|
||||
// This is because the subsequent step (bp2build in api domain analysis) creates them in Read-Write mode
|
||||
// to allow users to edit/experiment in the synthetic workspace.
|
||||
writeReadWriteFile(absoluteSoongInjectionDir, file)
|
||||
}
|
||||
|
||||
workspace := shared.JoinPath(configuration.SoongOutDir(), "api_bp2build")
|
||||
|
|
|
@ -91,6 +91,19 @@ func writeReadOnlyFile(dir string, f bp2build.BazelFile) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func writeReadWriteFile(dir string, f bp2build.BazelFile) error {
|
||||
dir = filepath.Join(dir, f.Dir)
|
||||
if err := createDirectoryIfNonexistent(dir); err != nil {
|
||||
return err
|
||||
}
|
||||
pathToFile := filepath.Join(dir, f.Basename)
|
||||
|
||||
// 0644 is read-write
|
||||
err := ioutil.WriteFile(pathToFile, []byte(f.Contents), 0644)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func createDirectoryIfNonexistent(dir string) error {
|
||||
if _, err := os.Stat(dir); os.IsNotExist(err) {
|
||||
return os.MkdirAll(dir, os.ModePerm)
|
||||
|
|
Loading…
Reference in a new issue