diff options
author | twerth <twerth@google.com> | 2018-06-22 08:12:56 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-22 08:14:03 -0700 |
commit | 732dc512801c32207c252a76ca8d9e5544560339 (patch) | |
tree | 5c5301d766b78194d2d7e89bd103b565b53d236d /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | dc97fd15dc53489211ca65fbbf85131853a559fc (diff) |
Automated rollback of commit 5a9befc5602e71f7512074c303afbdcff5617cca.
RELNOTES: None
*** Reason for rollback ***
PiperOrigin-RevId: 201686843
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
3 files changed, 15 insertions, 43 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index 91106b272c..9899f2c7b3 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -155,22 +155,17 @@ public final class Label repo = absName; absName = "//:" + absName.substring(1); } - String error = RepositoryName.validate(repo); - if (error != null) { - throw new LabelSyntaxException( - "invalid repository name '" + StringUtilities.sanitizeControlChars(repo) + "': " + error); - } try { LabelValidator.PackageAndTarget labelParts = LabelValidator.parseAbsoluteLabel(absName); - PackageIdentifier pkgId = - validatePackageName( - labelParts.getPackageName(), labelParts.getTargetName(), repo, repositoryMapping); - PathFragment packageFragment = pkgId.getPackageFragment(); + PackageIdentifier pkgIdWithoutRepo = + validatePackageName(labelParts.getPackageName(), labelParts.getTargetName()); + PathFragment packageFragment = pkgIdWithoutRepo.getPackageFragment(); if (repo.isEmpty() && ABSOLUTE_PACKAGE_NAMES.contains(packageFragment)) { - pkgId = - PackageIdentifier.create(getGlobalRepoName("@", repositoryMapping), packageFragment); + repo = "@"; } - return create(pkgId, labelParts.getTargetName()); + RepositoryName globalRepoName = getGlobalRepoName(repo, repositoryMapping); + return create( + PackageIdentifier.create(globalRepoName, packageFragment), labelParts.getTargetName()); } catch (BadLabelException e) { throw new LabelSyntaxException(e.getMessage()); } @@ -294,25 +289,15 @@ public final class Label return name; } - private static PackageIdentifier validatePackageName(String packageIdentifier, String name) - throws LabelSyntaxException { - return validatePackageName( - packageIdentifier, name, /* repo= */ null, /* repositoryMapping= */ null); - } - /** * Validates the given package name and returns a canonical {@link PackageIdentifier} instance if * it is valid. Otherwise it throws a SyntaxException. */ - private static PackageIdentifier validatePackageName( - String packageIdentifier, - String name, - String repo, - ImmutableMap<RepositoryName, RepositoryName> repositoryMapping) + private static PackageIdentifier validatePackageName(String packageIdentifier, String name) throws LabelSyntaxException { String error = null; try { - return PackageIdentifier.parse(packageIdentifier, repo, repositoryMapping); + return PackageIdentifier.parse(packageIdentifier); } catch (LabelSyntaxException e) { error = e.getMessage(); error = "invalid package name '" + packageIdentifier + "': " + error; diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java b/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java index e63b09684a..633946c60f 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/LabelValidator.java @@ -45,6 +45,7 @@ public final class LabelValidator { // Package names allow all 7-bit ASCII characters except // 0-31 (control characters) // 58 ':' (colon) - target name separator + // 64 '@' (at-sign) - workspace name prefix // 92 '\' (backslash) - directory separator (on Windows); may be allowed in the future // 127 (delete) /** Matches characters allowed in package name. */ @@ -52,7 +53,7 @@ public final class LabelValidator { CharMatcher.inRange('0', '9') .or(CharMatcher.inRange('a', 'z')) .or(CharMatcher.inRange('A', 'Z')) - .or(CharMatcher.anyOf(" !\"#$%&'()*+,-./;<=>?@[]^_`{|}~")) + .or(CharMatcher.anyOf(" !\"#$%&'()*+,-./;<=>?[]^_`{|}~")) .precomputed(); /** @@ -70,7 +71,7 @@ public final class LabelValidator { @VisibleForTesting static final String PACKAGE_NAME_ERROR = "package names may contain A-Z, a-z, 0-9, or any of ' !\"#$%&'()*+,-./;<=>?[]^_`{|}~'" - + " (most 127-bit ascii characters except 0-31, 127, ':', or '\\')"; + + " (most 127-bit ascii characters except 0-31, 127, ':', '@', or '\\')"; @VisibleForTesting static final String PACKAGE_NAME_DOT_ERROR = diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java index 732e6a0642..8d7ad1910a 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.cmdline; import com.google.common.base.Preconditions; import com.google.common.collect.ComparisonChain; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.Interner; import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; @@ -120,17 +119,10 @@ public final class PackageIdentifier } public static PackageIdentifier parse(String input) throws LabelSyntaxException { - return parse(input, /* repo= */ null, /* repositoryMapping= */ null); - } - - public static PackageIdentifier parse( - String input, String repo, ImmutableMap<RepositoryName, RepositoryName> repositoryMapping) - throws LabelSyntaxException { + String repo; String packageName; int packageStartPos = input.indexOf("//"); - if (repo != null) { - packageName = input; - } else if (input.startsWith("@") && packageStartPos > 0) { + if (input.startsWith("@") && packageStartPos > 0) { repo = input.substring(0, packageStartPos); packageName = input.substring(packageStartPos + 2); } else if (input.startsWith("@")) { @@ -153,13 +145,7 @@ public final class PackageIdentifier throw new LabelSyntaxException(error); } - if (repositoryMapping != null) { - RepositoryName repositoryName = RepositoryName.create(repo); - repositoryName = repositoryMapping.getOrDefault(repositoryName, repositoryName); - return create(repositoryName, PathFragment.create(packageName)); - } else { - return create(repo, PathFragment.create(packageName)); - } + return create(repo, PathFragment.create(packageName)); } public RepositoryName getRepository() { |