aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java
diff options
context:
space:
mode:
authorGravatar Alex Humesky <ahumesky@google.com>2016-02-12 00:23:16 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-12 09:15:03 +0000
commitde655af4a7f7a3e340365fbd9f48815ff388d70b (patch)
tree92fae3ded22f774769bd11876249a71f33a5280c /src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java
parent3a19bda92bc3af164478ee3884642ee9d0a1b7b5 (diff)
Adds a build_file_content attribute to new_git_repository, new_http_archive, and
new_local_repository which allows the build file to be specified by a string directly in the rule rather than using a separate file. build_file and build_file_content are both optional, but one or the other must be specified. RELNOTES: build_file_content attribute added to new_git_repository, new_http_archive, and new_local_repository. -- MOS_MIGRATED_REVID=114490435
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java
index b10ed9448a..2b89ce3a5d 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java
@@ -15,7 +15,8 @@
package com.google.devtools.build.lib.bazel.repository;
import com.google.devtools.build.lib.packages.Rule;
-import com.google.devtools.build.lib.skyframe.FileValue;
+import com.google.devtools.build.lib.rules.repository.NewRepositoryBuildFileHandler;
+import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.skyframe.SkyFunction.Environment;
import com.google.devtools.build.skyframe.SkyFunctionException;
@@ -27,15 +28,19 @@ import com.google.devtools.build.skyframe.SkyValue;
public class NewGitRepositoryFunction extends GitRepositoryFunction {
@Override
public SkyValue fetch(Rule rule, Path outputDirectory, Environment env)
- throws SkyFunctionException {
- FileValue buildFileValue = getBuildFileValue(rule, env);
- if (env.valuesMissing()) {
+ throws SkyFunctionException {
+
+ NewRepositoryBuildFileHandler buildFileHandler =
+ new NewRepositoryBuildFileHandler(getWorkspace());
+ if (!buildFileHandler.prepareBuildFile(rule, env)) {
return null;
}
createDirectory(outputDirectory, rule);
GitCloner.clone(rule, outputDirectory, env.getListener());
createWorkspaceFile(outputDirectory, rule);
- return symlinkBuildFile(buildFileValue, outputDirectory);
+ buildFileHandler.finishBuildFile(outputDirectory);
+
+ return RepositoryDirectoryValue.create(outputDirectory);
}
}