diff options
author | 2016-02-12 00:23:16 +0000 | |
---|---|---|
committer | 2016-02-12 09:15:03 +0000 | |
commit | de655af4a7f7a3e340365fbd9f48815ff388d70b (patch) | |
tree | 92fae3ded22f774769bd11876249a71f33a5280c /src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java | |
parent | 3a19bda92bc3af164478ee3884642ee9d0a1b7b5 (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.java | 15 |
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); } } |