aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-10-08 14:27:25 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-10-09 14:39:56 +0000
commit88bd33adf7c07098c7f3f9bf00426399d08a807b (patch)
tree19ce16aeef0d3817836155f4a083b6a0f19e9917
parentad018a64ba24803def18e7d3d78a201202ea5b7b (diff)
Do not follow symlinks when checking if a repository symlink already exists.
This confuses Bazel if a local_repository points to a nonexistent directory. -- MOS_MIGRATED_REVID=104959834
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java
index cf9022ced2..fe62852c34 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.build.lib.vfs.Symlinks;
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -60,7 +61,7 @@ public class LocalRepositoryFunction extends RepositoryFunction {
Path repositoryPath = getExternalRepositoryDirectory().getRelative(rule.getName());
try {
FileSystemUtils.createDirectoryAndParents(repositoryPath.getParentDirectory());
- if (repositoryPath.exists()) {
+ if (repositoryPath.exists(Symlinks.NOFOLLOW)) {
repositoryPath.delete();
}
repositoryPath.createSymbolicLink(pathFragment);