Merge "zipsync handles symlink" am: 83f738cae2

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1502377

Change-Id: Ie023fe0b547fc1cbdd424815d288ff0f67fd8b17
This commit is contained in:
Treehugger Robot 2020-11-19 08:03:20 +00:00 committed by Automerger Merge Worker
commit b3b509b3a5

View file

@ -53,6 +53,16 @@ func writeFile(filename string, in io.Reader, perm os.FileMode) error {
return out.Close()
}
func writeSymlink(filename string, in io.Reader) error {
b, err := ioutil.ReadAll(in)
if err != nil {
return err
}
dest := string(b)
err = os.Symlink(dest, filename)
return err
}
func main() {
flag.Usage = func() {
fmt.Fprintln(os.Stderr, "usage: zipsync -d <output dir> [-l <output file>] [-f <pattern>] [zip]...")
@ -122,7 +132,11 @@ func main() {
if err != nil {
log.Fatal(err)
}
must(writeFile(filename, in, f.FileInfo().Mode()))
if f.FileInfo().Mode()&os.ModeSymlink != 0 {
must(writeSymlink(filename, in))
} else {
must(writeFile(filename, in, f.FileInfo().Mode()))
}
in.Close()
files = append(files, filename)
}