diff options
author | Jingwen Chen <jingwen@google.com> | 2016-10-03 18:30:48 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-10-04 08:55:07 +0000 |
commit | 366cb3de49deac97e3015cbd09e29ec6d3f2953f (patch) | |
tree | 5620f05b16e3d0a11b38181c58cb8e966753ac9e /src/main/java | |
parent | 8707650711ddfa05ce21e3ef0f9561dcfd0b7409 (diff) |
Implemented a "--experimental_repository_cache" option as the first step to
caching external repositories (go/bazel-cache)
The option is categorized as hidden because it is a no-op.
--
MOS_MIGRATED_REVID=135006114
Diffstat (limited to 'src/main/java')
3 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index 45aa1c35fd..f9429f1a70 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -670,6 +670,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib:vfs", "//src/main/java/com/google/devtools/build/lib/bazel/repository/downloader", "//src/main/java/com/google/devtools/build/skyframe", + "//src/main/java/com/google/devtools/common/options", "//third_party:aether", "//third_party:apache_commons_compress", "//third_party:guava", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java index 365632d196..dad3d93c9a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java @@ -14,6 +14,7 @@ package com.google.devtools.build.lib.bazel; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; @@ -28,6 +29,7 @@ import com.google.devtools.build.lib.bazel.repository.MavenServerFunction; import com.google.devtools.build.lib.bazel.repository.MavenServerRepositoryFunction; import com.google.devtools.build.lib.bazel.repository.NewGitRepositoryFunction; import com.google.devtools.build.lib.bazel.repository.NewHttpArchiveFunction; +import com.google.devtools.build.lib.bazel.repository.RepositoryOptions; import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryFunction; import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryModule; import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction; @@ -62,6 +64,7 @@ import com.google.devtools.build.lib.util.AbruptExitException; import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; +import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsProvider; import java.util.Map.Entry; @@ -170,4 +173,11 @@ public class BazelRepositoryModule extends BlazeModule { delegator.setClientEnvironment(env.getClientEnv()); skylarkRepositoryFunction.setCommandEnvironment(env); } + + @Override + public Iterable<Class<? extends OptionsBase>> getCommandOptions(Command command) { + return "fetch".equals(command.name()) || "build".equals(command.name()) + ? ImmutableList.of(RepositoryOptions.class) + : ImmutableList.<Class<? extends OptionsBase>>of(); + } } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java new file mode 100644 index 0000000000..84b1fa251e --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java @@ -0,0 +1,35 @@ +//Copyright 2016 The Bazel Authors. All rights reserved. +// +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. + +package com.google.devtools.build.lib.bazel.repository; + +import com.google.devtools.build.lib.util.OptionsUtils; +import com.google.devtools.build.lib.vfs.PathFragment; +import com.google.devtools.common.options.Option; +import com.google.devtools.common.options.OptionsBase; + +/** + * Command-line options for repositories. + */ +public class RepositoryOptions extends OptionsBase { + + @Option(name = "experimental_repository_cache", + defaultValue = "null", + category = "hidden", + converter = OptionsUtils.PathFragmentConverter.class, + help = "Specifies the cache location of the downloaded values obtained " + + "during the fetching of external repositories.") + public PathFragment experimentalRepositoryCache; + +}
\ No newline at end of file |