cmd/gomobile: follow the symlink if assets is a symlink
Fixes golang/go#12713.
Change-Id: Ie63a48b2ab3f39d6481fab702e00c762587501b2
Reviewed-on: https://go-review.googlesource.com/14824
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/cmd/gomobile/build_androidapp.go b/cmd/gomobile/build_androidapp.go
index c489381..1f6a230 100644
--- a/cmd/gomobile/build_androidapp.go
+++ b/cmd/gomobile/build_androidapp.go
@@ -179,6 +179,11 @@
assetsDirExists = fi.IsDir()
}
if assetsDirExists {
+ // if assets is a symlink, follow the symlink.
+ assetsDir, err = filepath.EvalSymlinks(assetsDir)
+ if err != nil {
+ return nil, err
+ }
err = filepath.Walk(assetsDir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
diff --git a/cmd/gomobile/build_iosapp.go b/cmd/gomobile/build_iosapp.go
index 48bb19d..9c78a02 100644
--- a/cmd/gomobile/build_iosapp.go
+++ b/cmd/gomobile/build_iosapp.go
@@ -140,7 +140,11 @@
// skip walking through to deep copy.
return nil
}
-
+ // if assets is a symlink, follow the symlink.
+ srcAssets, err = filepath.EvalSymlinks(srcAssets)
+ if err != nil {
+ return err
+ }
return filepath.Walk(srcAssets, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err